欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Java] I/O 操作详解-5.转换流 ????

最编程 2024-10-14 11:52:51
...

???? 前面提到I/0流分为字节流和字符流,字节流和字符流之间可以进行转换。JDK提供了两个类用于将字节流转换为字符流,分别是 InputStreamReader OutputStreamReader

InputStreamReader:是从字节流到字符流的桥梁,父类是 Reader

  • 它读取字节,并使用指定的编码将其解码为字符
  • 它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台的默认字符集

OutputStreamReader:是从字符流到字节流的桥梁,父类是 Writer

  • 是从字符流到字节流的桥梁,使用指定的编码将写入的字符编码为字节
  • 它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台的默认字符集


通过 InputStreamReaderOutputStreamReader 将字节流转换为字符流,可以提高文件的读写效率

方法声明 功能描述
InputStreamReader(InputStream in) 使用默认字符编码创建InputStreamReader对象
InputStreamReader(InputStream in,String chatset) 使用指定的字符编码创建InputStreamReader对象
OutputStreamWriter(OutputStream out) 使用默认字符编码创建OutputStreamWriter对象
OutputStreamWriter(OutputStream out,String charset) 使用指定的字符编码创建OutputStreamWriter对象

下面通过一个案例演示如何将字节流转为字符流

  1. 首先.在src项目的根目录下新建文本文件 test.txt
  2. 并在文件中输入“Island1314”
  3. 其次,在sre文件夹中创建一个类,在类中创建字节输入流 FileInputStream对象读取src.txt文件中的内容,并将字节输入流转换成字符输入流。
  4. 再次,创建一个字节输出流对象,并指定目标文件为des.txt
  5. 最后,将字节输出流转换成字符输出流将字符输出到文件中
public static void main(String[] args) throws Exception {
    // 创建字节输入流 in ,并且指定源文件 test.txt
    FileInputStream in = new FileInputStream("src/IO/test.txt");
    // 将字节输入流 in 转化为 字符输入流 isr
    InputStreamReader isr = new InputStreamReader(in);

    // 创建字节输出流 out ,并且指定源文件 des.txt
    FileOutputStream out = new FileOutputStream("src/IO/des.txt");
    // 将字节输出流 out 转化为 字符输出流 osw
    OutputStreamWriter osw = new  OutputStreamWriter(out);

    int ch; // 定义一个变量用于记录读取的字符
    while((ch = isr.read()) != -1) // 循环判断是否读到文件末尾
    {
        osw.write(ch);
    }
    isr.close(); // 关闭字符输入流,节省资源
    osw.close(); // 关闭字符输出流,节省资源
}


 

推荐阅读