Java I/O流之打印流详细使用方法教程

 更新时间:2023年01月31日 12:01:00   作者:学全栈的灌汤包  
java的io是实现输入和输出的基础,可以方便的实现数据的输入和输出操作,下面这篇文章主要给大家介绍了关于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('我');
}

总结

到此这篇关于Java IO流打印流详细使用的文章就介绍到这了,更多相关Java IO流打印流使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • application作用域实现用户登录挤掉之前登录用户代码

    application作用域实现用户登录挤掉之前登录用户代码

    这篇文章主要介绍了application作用域实现用户登录挤掉之前登录用户代码,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • java 注解实现一个可配置线程池的方法示例

    java 注解实现一个可配置线程池的方法示例

    这篇文章主要介绍了java 注解实现一个可配置线程池的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • 详解Java异常处理的使用与思考

    详解Java异常处理的使用与思考

    异常处理的概念起源于早期的编程语言,如 LISP、PL/I 和 CLU。这些编程语言首次引入了异常处理机制,以便在程序执行过程中检测和处理错误情况。本文主要来介绍一下Java中的异常处理,需要的可以参考一下
    2023-04-04
  • Java Comparable 和 Comparator 的详解及区别

    Java Comparable 和 Comparator 的详解及区别

    这篇文章主要介绍了Java Comparable 和 Comparator 的详解及区别的相关资料,Comparable 自然排序和Comparator 定制排序的实例,需要的朋友可以参考下
    2016-12-12
  • java char数据类型原理解析

    java char数据类型原理解析

    这篇文章主要介绍了java char数据类型原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • SpringBoot中@Configuration和@Bean和@Component相同点详解

    SpringBoot中@Configuration和@Bean和@Component相同点详解

    这篇文章主要介绍了SpringBoot中@Configuration和@Bean和@Component相同点详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • 详解SpringBoot 多线程处理任务 无法@Autowired注入bean问题解决

    详解SpringBoot 多线程处理任务 无法@Autowired注入bean问题解决

    这篇文章主要介绍了详解SpringBoot 多线程处理任务 无法@Autowired注入bean问题解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • java GUI界面初步入门示例【AWT包】

    java GUI界面初步入门示例【AWT包】

    这篇文章主要介绍了java GUI界面,结合简单实例形式分析了java使用AWT包进行图形界面操作相关使用技巧,需要的朋友可以参考下
    2020-01-01
  • 一次java异步任务的实战记录

    一次java异步任务的实战记录

    最近做项目的时候遇到了一个小问题,从前台提交到服务端A,A调用服务端B处理超时,下面这篇文章主要给大家介绍了一次java异步任务的实战记录,需要的朋友可以参考下
    2022-05-05
  • Java中byte输出write到文件的实现方法讲解

    Java中byte输出write到文件的实现方法讲解

    今天小编就为大家分享一篇关于Java中byte输出write到文件的实现方法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03

最新评论