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

打印 上一主题 下一主题

主题 909|帖子 909|积分 2727

字符流

字符输入流(Reader)
字符输入流用于从数据源(如文件、字符串等)读取字符数据。Reader 是全部字符输入流的抽象基类。
常用实现类
FileReader 用于从文件中读取字符数据。
InputStreamReader 将字节流转换为字符流,可以指定字符编码。
BufferedReader 提供缓冲功能,提高读取效率,支持按行读取。
读取input.txt里的字符:





写入的五种方式:

字节流

字节输入流(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():关闭此输入流并释放与之关联的全部系统资源。


用字节流实现复制:
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企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

尚未崩坏

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表