java如何实现字节流与字符流之间的转换?
在I/O流当中提供了字节流和字符流两种形式,但是有时需要将字节流转化为字符流,那么怎样实现两者之间的转换呢?
在jdk中,提供了两个类用于实现将字节流转化为字符流,分别为InputStreamReader和OutputStreamWriter。InputStreamReade是Reader的子类,它可以将一个字节输入流转化为字符输入流,方便直接读入字符。OutputStreamWriter是Writer的子类,它将字节输出流转化为字符输出流,方便直接写入字符。
点击下方链接,免费获取java编程资料,先来先得!
接下来将通过一个案例来讲解如何将字节流转化为字符流,为了提高在程序的运行效率,可以通过BufferedReader和BufferedWriter来实现工作.
具体代码如下:
import Java.io: Permanent & Contract Remote Work. .*;
/********************************
项目:字节流与字符流之间的转换---转换流
方法:InputStreamReader/OutputStreamWriter
时间:2021.1.30
*****************************/
public class RunStringTemp {
public static void main(String[] args) throws Exception {
//创建字节流输入对象,获取需要的文件
FileInputStream in=new FileInputStream("C:\\Users\\asus\\Desktop\\out.txt");
//将字节流输入对象转化为字符流输入对象
InputStreamReader isr=new InputStreamReader(in);
//创建字符输入流缓冲对象
BufferedReader br=new BufferedReader(isr);
//创建字节流输出对象,指定目标文件
FileOutputStream out=new FileOutputStream("C:\\Users\\asus\\Desktop\\copy2.txt");
//将字节输出流转化为字符输出流
OutputStreamWriter osw= new OutputStreamWriter(out);
//创建字符输出流缓冲对象
BufferedWriter bw=new BufferedWriter(osw);
//定义一个字符串变量
String length=null;
//通过循环判断是否读到文件的末尾
while((length=br.readLine())!=null) {
//输出读取到的文件
bw.write(length);
bw.newLine();
}
//关闭流
br.close();
bw.close();
}
}
输出结果:
从上述可以看到一个copy2的文件与out.txt内容一样,说明拷贝完成。
从而实现了将字节流转化为字符流并实现了文本的拷贝功能。
点击下方链接,免费获取python编程资料,先来先得!
需要注意的是,在使用转换流的过程之中,只针对操作文本文件的字节流进行转换,当字节流操作的是字节码内容的文件(如图片、视频等),此时的数据就会发生丢失!
欢迎关注知乎,留言咨询!