Java IO流 - 打印流详细使用介绍

news/2023/6/7 23:56:06

文章目录

    • 打印流
      • 打印流基本使用
      • 输出语句重定向

打印流

在这里插入图片描述

打印流基本使用

打印流:

作用:打印流可以实现更方便、更高效的打印数据到文件中去。打印流一般是指: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('我');
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-4566366.html

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

笔记15-集合

1.Collection集合 1.1集合体系结构【记忆】 集合类的特点 ​ 提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变 集合类的体系图 1.2Collection集合概述和基本使用【应用】 Collection集合概述 是单例集合的顶层接口,它表示一组对象&am…

java集合根据2个字段排序_集合List根据多个字段进行排序

最近用java抓取数据的时候,遇到了需要对拿到的List集合按照多个字段进行排序。首先得让排序的实体类实现Comparable类并且重写它的compareTo方法,在compareTo中你可以自定义排序的规则。如果前者大于后者,则返回1,若果相等则返回0…

擎创动态 | 酸了酸了,这年会也忒燃了吧

前言:受疫情影响的这一年里,擎创科技逆流勇上,汇聚点点星火,点亮新的征程。擎创的服务随之正式遍及全国,北起重工业基地的东三省,南至改革开放最早的粤港澳大湾区,东起经济中心的大本营上海&…

直播带货小程序开发大概需要多少钱

直播带货的小程序怎么做?其实我们常见的微信直播其实有三种 一种来讲就是微信小程序自带的直播组件,这种免费的,你只需要去做一个小程序商城就可以了。直播的带货可以去挂载自己小程序的商品。 第二种来讲,这种大一点的直播平台&…

1个人,100天业余时间,用Flutter开发完一个商业APP,手握5家大厂offer

这个一个淘电商APP,同类型的APP有花生日记、好省、折800等等,基本上一个常规电商APP该有的,这个项目都有了。目前,该项目的完成度为80%,剩余的20%因为没有后台项目支持,所以无法完成。 为啥要做这个东西勒…

自己搭建网红直播带货平台源码该怎么做

直播带货作为“直播+”形态的一种,在近两年收到了广泛的关注,本文主要讲述:自己搭建网红直播带货平台源码,需要注意些什么,有哪些常见问题? 搭建网红直播平台源码需要多少人手: 产品…

开发类似斗鱼虎牙的运营级直播平台多少钱

自从直播行业逐渐被大众认可并得到大众喜爱之后,市场上就迎来了一小波开发 “热潮”。虽说短视频的出现使得直播行业受到了一定影响,但本质上直播行业的地位还是十分稳定的。那么,要想开发直播平台到底需要多少钱呢?其实这个问题…

开发直播平台多少钱?没有技术团队怎么办?

“开发直播平台多少钱?” “没有技术团队怎么办?” 以上两个问题是绝大多数想要加入直播行业的人都非常关注的问题,所以本文就以这两个问题来简单探讨一下,希望能给大家提供一定的帮助。 开发一个直播平台需要多少钱&#…