【打印流】常用方法以及应用场景

打印流常用方法以及应用场景

1.打印流是什么?

可以实现更方便、更高效地写数据,分为字节打印流PrintStream和字符打印流PrintWriter,使用方便,性能高效,底层封装了高效流

  • 字节打印流PrintStream:继承OutputStream,因此支持写字节的相关方法
  • 字符打印流PrintWriter:继承Writer,因此支持写字符的相关方法

2.PrintStream常用方法

  • public PrintStream(OutputStream/File/String):建对象并关联文件

  • public void println(内容):打印任意类型数据

    注意:要将数据追加写入到文件,先要封装原始流对象,才可以追加写入

    public class Demo01 {public static void main(String[] args) throws Exception {//public PrintStream(OutputStream/File/String); 建对象并关联文件PrintStream ps = new PrintStream("day10\\Demo01.txt");//封装原始流对象,追加写入PrintStream ps1 = new PrintStream(new FileOutputStream("day10\\Demo01-1.txt",true));//public void println(内容); 写任意类型数据ps.println(100);ps.println(3.14);ps.println('哈');ps.println("郝佳乐");ps.println(true);//释放资源ps.close();}
    }
    

其他方法

  • public PrintStream (String fileName, Charset charset); 可以指定写出去的字符编码(写中文时)
  • public PrintStream (OutputStream out, boolean autoFlush); 可以指定实现自动刷新
  • public PrintStream (OutputStream out, boolean autoFlush, String encoding); 可以指定实现自动刷新,并可指定字符的编码(写中文时)
  • public void write(int/byte[]/byte[]一部分); 可以支持写字节数据出去

3.PrintWriter常用方法

  • public PrintWriter(OutputStream/Writer/File/String):创建对象并关联对象

  • public void println(内容):打印任意类型数据

    public class Demo02 {public static void main(String[] args) throws IOException {//public PrintWriter(OutputStream/Writer/File/String); 创建对象并关联文件PrintWriter pw = new PrintWriter("day10\\Demo02.txt");       //注意事项:封装原始流,才能通过构造开启追加写入//PrintWriter pw = new PrintWriter(new FileWriter("day10\\Demo02.txt",true));//public void println(内容); 写任意类型数据pw.println(100);pw.println(3.14);pw.println('哈');pw.println("郝佳乐");pw.println(true);//释放资源pw.close();}
    }
    

其他方法

  • public PrintWriter(String fileName, String encoding); 可以指定写出去的字符编码(写中文时)
  • public PrintWriter(OutputStream out/Writer, boolean autoFlush); 可以指定实现自动刷新
  • public PrintWriter(OutputStream out, boolean autoFlush, String encoding); 可以指定实现自动刷新,并可指定字符的编码(写中文时)
  • public void write(int/String/char[]/…); 可以支持写字符数据出去

4.打印流应用

输出语句的重定向(指定打印数据的目的地),前面的代码目的地是控制台,如果项目上线就看不到了,可以使用打印流,指定打印目的地,实现输出语句的重定向

  • public static final PrintStream out=null; out本质上是一个PrintStream,初始化值null表示将数据打印到控制台
  • System.setOut(new PrintStream(“路径”)) 借助System的setOut修改out的值为指定文件路径
public class Demo01 {public static void main(String[] args) throws Exception {//打印在控制台System.out.println("床前明月光");System.out.println("疑是地上霜");//输出语句重定向System.setOut(new PrintStream("day10\\Demo01.txt"));//打印在指定路径的文件中System.out.println("举头望明月");//在文件中显示System.out.println("低头思故乡");//在文件中显示}
}

在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TCP/IP协议组

TCP/IP通信协议是目前最完整、使用最广泛的通信协议。它的魅力在于可使不同硬件结构、不同操作系统的计算机相互通信。TCP/IP协议既可用于广域网,也可用于局域网,它是Internet/Intranet的基石。TCP/IP通信协议事实上是一组协议。 TCP/IP协议可分为5层也可…

Sentinel dashboard无法查询到应用的限流配置问题以及解决

一。问题引入 使用sentinle-dashboard控制台 项目整体升级后,发现控制台上无法看到流控规则了 之前的问题是无法注册上来 现在是注册上来了。结果看不到流控规则配置了。 关于注册不上来的问题,可以看另一篇文章 https://blog.csdn.net/a15835774652/…

【云卓笔记】mavlink java文件

根据飞控提供的xml文件来生成的 生成的就是这样的java文件 准备工作: Mavlink协议生成 参考 1.安装mavlink : 使用MAVLink工具的要求是 Python 3.3 (recommended) or Python 2.7 Python future模块 (可选) PythonTklnter模块(如果需要使用图形用户界面)。 环境变量PYTHO…

【Linux】【驱动】第一个相对完整的驱动编写

【Linux】【驱动】第一个相对完整的驱动编写 续1.驱动部分的代码2 app 代码3 操作相关的代码 续 这个章节会讲述去直接控制一个GPIO,高低电平。 因为linux不允许直接去操作寄存器,所以在操作寄存器的时候就需要使用到函数:ioremap 和iounma…

windows安装新openssl后依然显示旧版本

1、Windows环境下安装升级新版本openssl后,通过指令openssl version -a查看版本号:如下 这个版本号还是是以前的老版本,看来得把原先的老版本删除掉才可以生效,但是不知道在哪里。 2、网上找了老半天也没找到答案,最后…

Linux安装rabbitmq整合版本

rabbitmq和erlang对应版本 https://www.rabbitmq.com/which-erlang.html erlang下载地址 Otp 24.1.7 - Erlang/OTP wget https://github.com/erlang/otp/releases/download/OTP-24.1.7/otp_src_24.1.7.tar.gz socat下载地址 RPM resource socat(x86-64) (rpmfind.net) rab…

pnpm无法加载文件 (解决方法 )

现在要运行一个TS的项目,我的电脑上没有安装pnpm,导致我的vscode一直报错无法加载。 pnpm安装: npm install -g pnpm pnpm : 无法加载文件 pnpm : 无法加载文件 C:\Users\HP\AppData\Roaming\npm\pnpm.ps1,因为在此系统上禁止运…

【AutoLayout案例04-游戏图片-按钮适配 Objective-C语言】

一、好,我们再看一个案例, 刚才,这个案例, 这么一个案例 这个案例,是什么意思呢, 这里给大家做一个3.5英寸、4.0英寸的屏幕适配, 因为我们这里图片,只有一个,就是4英寸的这么一个图片 什么意思呢,要求我们在3.5英寸的屏幕、和4英寸的屏幕的时候,都能正常显示这个图…

Java集合框架扫盲

文章目录 一、故事背景二、知识点主要构成1、List1.1、ArrayList1.1.1、添加元素1.1.2、删除元素1.1.3、修改元素1.1.4、遍历元素 1.2、LinkedList1.2.1、添加元素1.2.2、删除元素1.2.3、修改元素1.2.4、遍历元素 1.3、Vector 2、Set2.1、HashSet2.2、LinkedHashSet2.3、TreeSe…

启动audit服务报错

启动centos audit服务报错 错误信息 $service auditd restart Stopping logging: [FAILED] Redirecting start to /bin/systemctl start auditd.service Job for auditd.service failed because the control process exited with error code. See “systemctl status auditd.s…

java-CyclicBarrier、CountDownLatch、Semaphore 的用法以及 volatile 关键字的作用

CyclicBarrier、CountDownLatch、Semaphore 的用法 1. CountDownLatch(线程计数器 ) CountDownLatch 类位于 java.util.concurrent 包下,利用它可以实现类似计数器的功能。比如有一个任务 A,它要等待其他 4 个任务执行完毕之后才…

Selenium环境+元素定位大法

selenium 与 webdriver Selenium 是一个用于 Web 测试的工具,测试运行在浏览器中,就像真正的用户在手工操作一样。支持所有主流浏览器 WebDriver 就是对浏览器提供的原生API进行封装,使其成为一套更加面向对象的Selenium WebDriver API。 使…