打印流

java.io.PrintStream:打印流
PrintStream为其他打印输出流添加了这个功能,是他们能够方便打印出各种数据值表示形式
PrintStream的特点:1、只负责数据的输出,不负责数据的读取
2、与其他输出流不同,PrintStream永远不会抛出IOException
构造方法:PrintStream(File file):输出的目的第是一个文件
PrintStream(OutputStream out):输出的目的地是一个字节输出流
PrintStream(String fileName):输出的目的地是一个文件路径
继承自父类的共性成员方法:public void close():关闭此输出流并且释放与此流相关联的任何资源
public void flush():刷新此输出流强制任何缓冲的输出字节被写出
public void write(byte[] b):将b.length字节从指定字节数组写入此输出流
public void write(byte[] b,int off,int len):从指定的字节数组写入len字节,从off开始
public abstract void write(int b):将指定的字节输出流
注意:如果使用继承父类的方法write方法写数据,那么查看数据的时候会查询编码97–>a
如果使用字节特有的方法print/println方法写数据,那么写出的数据原样输出97–>97

import java.io.FileNotFoundException;
import java.io.PrintStream;
public class demo03 {
    public static void main(String[] args) throws FileNotFoundException {
        PrintStream ps=new PrintStream("D:\\BaiduNetdiskDownload\\123.txt");
        ps.write(97);//得到的就是a
        ps.println(97);//得到的就是97
        ps.close();
    }
}

改变输出语句的目的地

可以改变输出语句的目的地(打印流的流向)
输出语句,默认在控制台输出
使用System.setOut方法改变输出语句的目的地改为参数中传递的打印流的目的地
static void setOut(PrintStream out)重新分配”标准“输出流

import java.io.FileNotFoundException;
import java.io.PrintStream;
public class demo04 {
    public static void main(String[] args) throws FileNotFoundException {
        System.out.println("控制台输出");
        PrintStream ps =new PrintStream("D:\\BaiduNetdiskDownload\\123.txt");
        System.setOut(ps);//把输出语句的目的地改变为打印流的目的地
        System.out.println("打印流的目的地输出");
        ps.close();
    }
}
### 打印流的介绍 在 Java 中,打印流是用于方便地输出数据的流,分为字节打印流 `PrintStream` 和字符打印流 `PrintWriter` [^1]。`PrintStream` 继承自 `OutputStream`,`PrintWriter` 继承自 `Writer`。其中,`System.out` 是一个静态变量,它是一个字节打印流的对象,也被称为标准输出流,在运行时由 JVM 进行赋值,会将内容打印到控制台 [^1][^2]。 ### 打印流的使用方法 - **创建打印流对象**:可以根据需求创建字节打印流 `PrintStream` 或字符打印流 `PrintWriter` 对象。对于 `PrintStream`,可以将其关联到文件或其他输出目标;对于 `PrintWriter` 同样可以关联文件等。 - **写入数据**:使用打印流的 `print()`、`println()` 等方法向流中写入数据。 - **关闭流**:操作完成后,调用 `close()` 方法关闭流以释放资源。 ### 示例代码 以下是使用 `PrintStream` 和 `PrintWriter` 的示例: ```java import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintStream; import java.io.PrintWriter; public class PrintStreamExample { public static void main(String[] args) { // 使用 PrintStream 示例 try { // 创建 PrintStream 对象,关联到文件 PrintStream ps = new PrintStream(new FileOutputStream("printstream.txt")); // 写入数据 ps.println("This is a PrintStream example."); ps.print("Numbers: "); for (int i = 1; i <= 5; i++) { ps.print(i + " "); } // 关闭流 ps.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } // 使用 PrintWriter 示例 try { // 创建 PrintWriter 对象,关联到文件 PrintWriter pw = new PrintWriter("printwriter.txt"); // 写入数据 pw.println("This is a PrintWriter example."); pw.print("Letters: "); for (char c = 'a'; c <= 'e'; c++) { pw.print(c + " "); } // 刷新缓冲区 pw.flush(); // 关闭流 pw.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } } } ``` 上述代码中,分别使用 `PrintStream` 和 `PrintWriter` 将数据写入到不同的文件中。`PrintStream` 直接向文件写入数据,`PrintWriter` 则需要调用 `flush()` 方法刷新缓冲区确保数据写入文件,最后都调用 `close()` 方法关闭流。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值