IO流 之 打印流( PrintStream 和 PrintWriter )

打印流可以实现更加方便的打印数据出去,可以实现打印啥就是啥

PrintStream字节打印流

代码演示,将字符串和其他类型,打印到f.txt文件中。

java 复制代码
package day0927;

import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.nio.charset.Charset;

public class demo13 {
    public static void main(String[] args) {
        try (
                PrintStream printStream
                     = new PrintStream("src/f.txt");
        ){
            printStream.println(97);
            printStream.println("你好");
            printStream.println('a');
            printStream.println(true);
            printStream.println(83.23);
			//通过write写的是一个a,因为wrtie是写字节流的数据,而println是将内容完整打印到目标文件
            printStream.write(97);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

通过write(97)写的是一个 a,因为wrtie是写字节流的数据,而println(97)是将内容完整打印到目标文件。

结果:

PrintWrite字符打印流

代码演示,将字符串和其他类型,打印到g.txt文件中。

java 复制代码
package day0927;
import java.io.PrintWriter;

public class demo13 {
    public static void main(String[] args) {
        try (
                PrintWriter printStream
                     = new PrintWriter("src/g.txt");
        ){
            printStream.println(97);
            printStream.println("你好");
            printStream.println('a');
            printStream.println(true);
            printStream.println(83.23);
//通过write写的是asdf,因为wrtie是写字符流的数据,而println是将内容完整打印到目标文件
            printStream.write("asdf");
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

两者的区别:

应用

可知上面几个语句都是把字符串输出在控制台。

那有没有一种方法可以让,他们输出再文件,不打印再控制台呢。

当我们按住ctrl键打开System.out.println();中的out时就会发现其实 out 也是一个打印流。

这里的out也是可以设置的,需要自己创建一个PrintStream流

所以直接:

java 复制代码
package day0927;

import java.io.FileNotFoundException;
import java.io.PrintStream;

public class demo13 {
    public static void main(String[] args) {
        try (
                //创建PrintStream流
                PrintStream printStream = new PrintStream("h.txt")
        ){
            System.out.println("控制台");
            //将系统中的out设置为创建的流
            System.setOut(printStream);
            System.out.println("你好");
            System.out.println("我在h.txt文件中哦");
        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        }
    }
}

结果:

未设置之前的输出再控制台。

设置之后的输出再h.txt文件中。

相关推荐
大帅点兵9 分钟前
Apache Ant 1.9.9 完整讲解
java
幸运小圣20 分钟前
PointerEvent 常用属性与事件整理【JavaScript】
开发语言·javascript·ecmascript
LuTshoes24 分钟前
spring ai 实战 手搓 PlaneExecuteAgent
java·人工智能·spring·ai
这料鬼有毒34 分钟前
二刷hot100-73.矩阵置零
java
caoerzhong34 分钟前
JeeWMS 开源仓库管理系统二次开发与接口对接实战:Java WMS 如何与 ERP、MES 和自动化设备打通
java·开源
长谷深风1111 小时前
评测AI Agent:三种裁判各司其职
java·大数据·开发语言·人工智能·ai agent
边境悍匪1 小时前
蜗牛学苑 Java 智能体学习 Day42|项目周开发技术汇总 1 思维导图复盘
java·开发语言·spring boot·学习·spring
槑有烦恼1 小时前
Java 字符串 & List集合 高频易错真题复盘(含全部错题+修正)
java
语戚1 小时前
力扣 1621. 大小为K的不重叠线段的数目:动态规划(Java 实现)
java·算法·leetcode·动态规划·力扣·dp
君顾12 小时前
本地托管机构管理源码实战:需求拆解、数据建模与多端部署
java·开发语言·托管