标准输入输出流

举报
兰舟千帆 发表于 2022/07/21 18:47:28 2022/07/21
【摘要】 平常我们都会使用Scanner这个下面的方法去进行键盘输入数据,但是弄清楚它的本质也是一件非常有意义的事情。它的==底层还是使用了字节输入流==。这样就与流的知识衔接起来了。 标准输出流public class PrintStreamextends FilterOutputStreamimplements Appendable, CloseablePrintStream 为其他输出流添加了功...

平常我们都会使用Scanner这个下面的方法去进行键盘输入数据,但是弄清楚它的本质也是一件非常有意义的事情。
在这里插入图片描述
它的==底层还是使用了字节输入流==。

在这里插入图片描述
这样就与流的知识衔接起来了。

标准输出流

public class PrintStreamextends FilterOutputStreamimplements Appendable, Closeable

PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式。它还提供其他两项功能。与其他输出流不同,PrintStream 永远不会抛出 IOException;而是,异常情况仅设置可通过 checkError 方法测试的内部标志。另外,为了自动刷新,可以创建一个 PrintStream;这意味着可在写入 byte 数组之后自动调用 flush 方法,可调用其中一个 println 方法,或写入一个换行符或字节 (’\n’)。
PrintStream 打印的所有字符都使用平台的默认字符编码转换为字节。在需要写入字符而不是写入字节的情况下,应该使用 PrintWriter 类。

所具有的一些构造方法

PrintStream(File file)
创建具有指定文件且不带自动行刷新的新打印流。
PrintStream(File file, String csn)
创建具有指定文件名称和字符集且不带自动行刷新的新打印流。
PrintStream(OutputStream out)
创建新的打印流。
PrintStream(OutputStream out, boolean autoFlush)
创建新的打印流。
PrintStream(OutputStream out, boolean autoFlush, String encoding)
创建新的打印流。
PrintStream(String fileName)
创建具有指定文件名称且不带自动行刷新的新打印流。
PrintStream(String fileName, String csn)
创建具有指定文件名称和字符集且不带自动行刷新的新打印流。

这样我们得到的信息是,我么可以在参数中按照布尔值确定是否进行自动刷新,另外还可以进行指定编码。

这个和标准输入流在System类中定义的格式是一样的。底层话,其实同样也是字节流。简单看下怎么使用。

 //标准输出流
        PrintStream out = System.out;
        out.print("hello");//输出在控制台

但是你其实也可以向文件中进行输出,也就是将数据输入到文件中。

  //字节打印流
        PrintStream ps = new PrintStream("E:\\java_doc\\src\\io_demo\\jgdabc.txt");
        ps.write(97);//使用父类方法
        ps.print(97);//使用自己特有方法
        ps.close();
       //字符打印流
        PrintWriter pW = new PrintWriter("E:\\java_doc\\src\\io_demo\\jgdabc.txt");
        pW.write("hello");
        pW.flush();
        pW.println("Hello");
        pW.flush();
        PrintWriter pw = new PrintWriter(new FileWriter("E:\\java_doc\\src\\io_demo\\jgdabc.txt"),true);//会自动刷新
        pw.println("Hello");
        pw.println("world"
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。