打印流可以实现更加方便的打印数据出去,可以实现打印啥就是啥
PrintStream字节打印流
代码演示,将字符串和其他类型,打印到f.txt文件中。
package day0927;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.nio.charset.Charset;
public class demo13 {
public static void main(String[] args) {
try (
PrintStream printStream
= new PrintStream("src/f.txt");
){
printStream.println(97);
printStream.println("你好");
printStream.println('a');
printStream.println(true);
printStream.println(83.23);
//通过write写的是一个a,因为wrtie是写字节流的数据,而println是将内容完整打印到目标文件
printStream.write(97);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
通过write(97)
写的是一个 a,因为wrtie是写字节流的数据,而println(97)
是将内容完整打印到目标文件。
结果:
PrintWrite字符打印流
代码演示,将字符串和其他类型,打印到g.txt文件中。
package day0927;
import java.io.PrintWriter;
public class demo13 {
public static void main(String[] args) {
try (
PrintWriter printStream
= new PrintWriter("src/g.txt");
){
printStream.println(97);
printStream.println("你好");
printStream.println('a');
printStream.println(true);
printStream.println(83.23);
//通过write写的是asdf,因为wrtie是写字符流的数据,而println是将内容完整打印到目标文件
printStream.write("asdf");
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
两者的区别:
应用
可知上面几个语句都是把字符串输出在控制台。
那有没有一种方法可以让,他们输出再文件,不打印再控制台呢。
当我们按住ctrl键打开System.out.println();
中的out时就会发现其实 out 也是一个打印流。
这里的out也是可以设置的,需要自己创建一个PrintStream流
所以直接:
package day0927;
import java.io.FileNotFoundException;
import java.io.PrintStream;
public class demo13 {
public static void main(String[] args) {
try (
//创建PrintStream流
PrintStream printStream = new PrintStream("h.txt")
){
System.out.println("控制台");
//将系统中的out设置为创建的流
System.setOut(printStream);
System.out.println("你好");
System.out.println("我在h.txt文件中哦");
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
}
}
结果:
未设置之前的输出再控制台。
设置之后的输出再h.txt文件中。