Java IO流 - 打印流详细使用介绍
文章目录
打印流
打印流基本使用
打印流:
作用:打印流可以实现更方便、更高效的打印数据到文件中去。打印流一般是指:PrintStream,PrintWriter两个类。
可以实现打印什么数据就是什么数据,例如打印整数97写出去就是97,打印boolean的true,写出去就是true。
打印流PrintStream构造器如下:
构造器 | 说明 |
---|---|
PrintStream(OutputStream os) | 打印流直接通向字节输出流管道 |
PrintStream(File f) | 打印流直接通向文件对象 |
PrintStream(String filepath) | 打印流直接通向文件路径 |
示例代码
public static void main(String[] args) throws Exception { // 方式一: 打印流通向字节输出流管道 PrintStream ps1 = new PrintStream(new FileOutputStream("/Users/chenyq/Documents/test.txt")); // 方式二: 打印流通向文件对象 PrintStream ps2 = new PrintStream(new File("/Users/chenyq/Documents/test.txt")); // 方式三: 打印流通向文件路径 PrintStream ps3 = new PrintStream("/Users/chenyq/Documents/test.txt");}
打印流PrintStream方法如下:
方法 | 说明 |
---|---|
print(Xxx xx) | 打印任意类型的数据出去(不换行) |
println(Xxx xx) | 打印任意类型的数据出去(换行) |
演示代码
public static void main(String[] args) throws Exception { PrintStream ps = new PrintStream(new FileOutputStream("/Users/chenyq/Documents/test.txt")); // 打印流方法 ps.println(97); ps.println("aaa"); ps.println(123); ps.println('我'); ps.println(true); // 关闭流 ps.close();}
上面代码打印到文件中的内容如下:
打印流PrintWrite构造器如下
构造器 | 说明 |
---|---|
PrintWriter(OutputStream os) | 打印流直接通向字节输出流管道 |
PrintWriter (Writer w) | 打印流直接通向字符输出流管道 |
PrintWriter (File f) | 打印流直接通向文件对象 |
PrintWriter (String filepath) | 打印流直接通向文件路径 |
打印流PrintStream方法:
方法 | 说明 |
---|---|
print(Xxx xx) | 打印任意类型的数据出去(换行) |
println(Xxx xx) | 打印任意类型的数据出去(不换行) |
演示代码:
PrintWrite和PrintPrintStream在打印的使用上并无区别
public static void main(String[] args) throws Exception { PrintWriter pw = new PrintWriter(new FileOutputStream("/Users/chenyq/Documents/test.txt")); // 打印流方法 pw.println(97); pw.println("aaa"); pw.println(123); pw.println('我'); pw.println(false); // 关闭流 pw.close();}
既然PrintStream和PrintWrite在打印上没有区别, 那这两个类的区别在哪里?
打印数据功能上是一模一样的,都是使用方便,性能高效(核心优势)
PrintStream继承自字节输出流OutputStream,支持写字节数据的方法。
PrintWriter继承自字符输出流Writer,支持写字符数据出去。
public static void main(String[] args) throws Exception { PrintStream ps = new PrintStream(new FileOutputStream("/Users/chenyq/Documents/test.txt")); // PrintStream写字节数据 ps.write("我爱学习".getBytes());}
public static void main(String[] args) throws Exception { PrintWriter pw = new PrintWriter(new FileOutputStream("/Users/chenyq/Documents/test.txt")); // PrintWrite写字符数据 pw.write("我爱学习");}
但是我们一般使用打印流, 都是打印数据到文件中去;
使用打印流我们基本不会用来写数据, 因为写数据我们直接使用字符输出流和字节输出流更好
使用打印流的小细节, 我们可以发现, 打印流默认也是覆盖管道, 打印的数据会覆盖原数据
如果我们想要打印数据为追加数据, 我们要在低级管道中开启追加模式, 打印流的过早其中没有提供追加数据的构造器
public static void main(String[] args) throws Exception { // 在原始字符输出流开启追加模式 PrintWriter pw = new PrintWriter(new FileOutputStream("/Users/chenyq/Documents/test.txt", true));}
输出语句重定向
输出语句重定向(了解)
属于打印流的一种应用,可以把输出语句
System.out.println();
的打印位置改到文件当中。例如: 在项目的开发阶段我们是在控制台打印调试的, 我们希望项目上线后将输出语句打印到文件当中
public static void main(String[] args) throws Exception { PrintStream ps = new PrintStream("/Users/chenyq/Documents/test.txt"); // 改变输出语句的位置(重定向), 将输出语句输出到文件当中 System.setOut(ps); System.out.println("aaa"); System.out.println(97); System.out.println(123); System.out.println('我');}
来源地址:https://blog.csdn.net/m0_71485750/article/details/127642540
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341