Java-IO流之字符流操作

简介: 代码如下

文件的写入

//1File类的实例化
    File file = new File("hello.txt");
    //2.提供FileWriter的对象,用于数据的写出
    FileWriter fw=new FileWriter(file);
    fw.write("hello world!\n");
    fw.write("xitu");
    //资源的关闭
    fw.close();
  • 输出操作,对应的File可以不存在,并不会报异常
  • File对应的硬盘中的文件如果不存在,在输出的过程中,会自动创建此文件。
  • File对应的硬盘中的文件如果存在:
  • 如果流使用的构造器是FileWriter(file,false)/FileWriter(file):对原有文件覆盖
  • 如果流使用的构造器是:FileWriter(file.true):不会对原有文件覆盖,而是在原有文件后追加内容

文件的写出

//1File类的实例化
File file = new File("hello.txt");
File data=new File("hello2.txt");
//2.创建输入流和输出流的对象
FileReader fr=new FileReader(file);
FileWriter fw=new FileWriter(data);
//3.数据的读入和写出操作
char[] cubf=new char[5];
int len;//记录每次读入到cubf数组中的字符的个数
while ((len=fr.read(cubf)) !=-1){
    //每次写出len个字符
    fw.write(cubf,0,len);
}
fw.close();
  • 如果是图片/视频的话不能用字符流进行处理

使用字节流读入文件

//1File类的实例化
File file = new File("hello.txt");
//2.造流
FileInputStream fis=new FileInputStream(file);
//3.读数据
byte[] butter=new byte[5];
int len;
while ((len=fis.read(butter))!=-1){
    String str=new String(butter,0,len);
    System.out.print(str);
}
  • 使用字节流FileInputStream处理文本是可能出现乱码的

OutputStream & Writer

OutputStream 和 Writer 也非常相似:

  • void write(int b/int c);
  • void write(byte[] b/char[] cbuf);
  • void write(byte[] b/char[] buff, int off, int len);
  • void flush();
  • void close(); 需要先刷新,再关闭此流
  • 因为字符流直接以字符作为操作单位,所以 Writer 可以用字符串来替换字符数组,即以 String 对象作为参数
  • void write(String str);
  • void write(String str, int off, int len);
  • FileOutputStream 从文件系统中的某个文件中获得输出字节。FileOutputStream 用于写出非文本数据之类的原始字节流。要写出字符流,需要使用 FileWriter
相关文章
|
2月前
|
存储 缓存 Java
15 Java IO流(File类+IO流+字节流+字符流+字节编码)
15 Java IO流(File类+IO流+字节流+字符流+字节编码)
45 3
|
4月前
|
Java 数据处理 开发者
揭秘Java IO流:字节流与字符流的神秘面纱!
【6月更文挑战第26天】Java IO流涵盖字节流和字符流,字节流处理二进制数据,如图像,由InputStream/OutputStream家族管理;字符流处理文本,基于Reader/Writer,适于文本文件。在文件复制示例中,字节流用FileInputStream/FileOutputStream,字符流用FileReader/FileWriter。选择流类型取决于数据类型和处理需求,文本文件优选字符流,二进制数据则选字节流。
56 6
|
4月前
|
缓存 Java
java基础之字符流相关内容
java基础之字符流相关内容
25 7
|
3月前
|
存储 缓存 Java
JavaSE—IO流之字符流与字节流
JavaSE—IO流之字符流与字节流
|
4月前
|
存储 编解码 安全
一篇文章讲明白java字符流字节流
一篇文章讲明白java字符流字节流
16 0
|
4月前
|
存储 自然语言处理 Java
Java IO流完全手册:字节流和字符流的常见应用场景分析!
【6月更文挑战第26天】Java IO流涵盖字节流和字符流,字节流用于二进制文件读写及网络通信,如图片和音频处理;字符流适用于文本文件操作,支持多语言编码,确保文本正确性。在处理数据时,根据内容类型选择合适的流至关重要。
51 0
|
4月前
|
自然语言处理 Java
Java IO流进阶教程:掌握字节流和字符流的高级用法!
【6月更文挑战第26天】Java IO流助你高效交换数据,包括字节流(InputStream/OutputStream)和字符流(Reader/Writer)的高级技巧。缓冲流(Buffered*)提升读写性能,对象流(Object*Stream)支持对象序列化。字符流的BufferedReader/BufferedWriter优化文本处理,注意字符集如UTF-8用于编码转换。掌握这些,优化IO操作,提升代码质量。
39 0
|
4月前
|
Java 测试技术
Java IO流深度剖析:字节流和字符流的性能对比!
【6月更文挑战第26天】Java IO流分字节流和字符流,字节流处理所有类型数据(如图片),字符流处理文本(基于Unicode)。字节流直接处理,性能高,适合非文本文件;字符流处理文本时考虑编码,适合文本文件。性能测试显示,字节流在读写非文本文件时更快,而字符流在处理文本时更方便。选择流类型应依据数据类型和需求。
51 0
|
4月前
|
自然语言处理 Java 数据处理
Java IO流全解析:字节流和字符流的区别与联系!
【6月更文挑战第26天】Java IO流涵盖字节流与字符流。字节流(InputStream/OutputStream)处理数据单位为字节,适用于二进制和文本,而字符流(Reader/Writer)专注于文本,处理单位为字符,处理编码转换。字符流在字节流基础上添加编码处理,以装饰器模式实现。文件复制示例展示了两者区别:字节流直接复制所有数据,字符流处理字符编码。理解并选择适当流类型对优化程序至关重要。
113 0
|
4月前
|
Java
java使用字符流读取文件
java使用字符流读取文件
下一篇
无影云桌面