尚未崩坏 发表于 2025-2-22 21:22:36

新数据结构(13)——I/O

字符流

字符输入流(Reader)
字符输入流用于从数据源(如文件、字符串等)读取字符数据。Reader 是全部字符输入流的抽象基类。
常用实现类
FileReader 用于从文件中读取字符数据。
InputStreamReader 将字节流转换为字符流,可以指定字符编码。
BufferedReader 提供缓冲功能,提高读取效率,支持按行读取。
读取input.txt里的字符:
https://i-blog.csdnimg.cn/direct/373367b9d26b4096b191fd571b95ca4f.png
https://i-blog.csdnimg.cn/direct/fb2e027af77348f3867b2e32e7567719.png
https://i-blog.csdnimg.cn/direct/c97425ec43b847069e95c4b676aac075.png
https://i-blog.csdnimg.cn/direct/1814b73751594a75a7de939750df8c88.png
https://i-blog.csdnimg.cn/direct/aef9ebfea15b4067ad2f2dbb7847ffac.png
写入的五种方式:
https://i-blog.csdnimg.cn/direct/7eff0b02d145445096eb6f3e85de55fd.png
字节流

字节输入流(InputStream)
InputStream 是全部字节输入流的抽象基类,它定义了读取字节数据的基本方法。常见的字节输入流子类有 FileInputStream、ByteArrayInputStream 等。
常用方法


[*]int read():从输入流中读取一个字节的数据,返回值为读取的字节(范围是 0 - 255),假如到达流的末尾则返回 -1。
[*]int read(byte[] b):从输入流中读取肯定数量的字节,并将其存储在缓冲区数组 b 中,返回实际读取的字节数,假如到达流的末尾则返回 -1。
[*]int read(byte[] b, int off, int len):从输入流中读取最多 len 个字节的数据,并将其存储在数组 b 中,从偏移量 off 开始存储,返回实际读取的字节数,假如到达流的末尾则返回 -1。
[*]void close():关闭此输入流并释放与之关联的全部系统资源。
https://i-blog.csdnimg.cn/direct/fd1b22c46a704ce7a7bb717fb5ea8be7.png
https://i-blog.csdnimg.cn/direct/e0225f97e78046deb4c9e0a2ae9485d6.png
用字节流实现复制:
package Test20250220_IO; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.FileOutputStream; import java.io.IOException; public class ByteStreamCopyExample { public static void main(String[] args) { // TODO Auto-generated method stub try { FileInputStream fis = new FileInputStream("C:\\Users\\ZhuanZ\\workspace\\newDataStructure\\src\\Test20250220_IO\\input.txt"); InputStreamReader isr = new InputStreamReader(fis,"UTF-8"); // 读取单个字节 int dataI; String dataO =""; while((dataI=isr.read())!=-1){ dataO+=((char)dataI)+""; } FileOutputStream fos= new FileOutputStream("C:\\Users\\ZhuanZ\\workspace\\newDataStructure\\src\\Test20250220_IO\\output.txt"); byte[] bytes = dataO.getBytes(); // 写入字节数组 fos.write(bytes); } catch(IOException e){ e.printStackTrace(); } } }

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 新数据结构(13)——I/O