什么时候用字节流,什么时候用字符流?

chg2008 chg2008 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
写了两个文件复制的程序:
第一个 :
使用FileInputStream,FileOutputStream 如下:
import java.io.*;
public class FileCopy {
private String in;
private String out;
public FileCopy(String inName,String outName) {
in = inName;
out = outName;
}
private void copyFile ()
throws Exception {
FileInputStream fis = new FileInputStream(in);
FileOutputStream fos = new FileOutputStream(out);
byte[] b = new byte[256];
while(fis.read(b)!=-1) {
fos.write(b);
}
fis.close();
fos.close();
}
public static void main(String[] args) throws Exception {
try {
FileCopy fc = new FileCopy("f:\\help.bmp","g:\\help.bmp");
fc.copyFile();
}
catch (Exception e) {
e.printStackTrace();
}
}
}

第二个用BufferedReader,BufferedWriter 如下
import java.io.*;
public class FileCopy {
private String in;
private String out;
public FileCopy(String inName,String outName) {
in = inName;
out = outName;
}
private void copyFile ()
throws Exception {
BufferedReader fis = new BufferedReader(new FileReader(in));
BufferedWriter fos = new BufferedWriter(new FileWriter(out));
char[] b = new char[256];
while(fis.read()!= -1) {
fos.write(b);
}
fis.close();
fos.close();
}
public static void main(String[] args) throws Exception {
try {
FileCopy fc = new FileCopy("f:\\help1.bmp","g:\\help11.bmp");
fc.copyFile();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
结果,第一种方法生成的bmp与原来的一样,而第二种方法生成的bmp却无法打开?
请问是为什么?
...全文

相关推荐

02【字节流、字符流】.html

Java文件流知识点梳理总结,IO文件流,包含了File类、缓冲流、字节流、字符流、转换流等

mujiaxing001

Java字符流与字节流区别

Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。 Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流和 java 内 Unicode 字符流之间的转换。而类 InputStreamReader 和 OutputStreamWriter 处理字符流和字节流的转换。字符流(一次可以处理一个缓冲区)一次操作比字节流(一次一个字节)效率高。

玲家男孩

详解Java中字符流与字节流的区别

主要为大家详细介绍了Java中字符流与字节流的区别,这两个的概念易混淆,今天就为大家进行详细区分,感兴趣的小伙伴们可以参考一下

weixin_38700320

理解Java中字符流与字节流的区别

1. 什么是流   Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列。和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序列的对象被称为输入流;能够向其写入一个字节序列的对象被称为输出流。   2. 字节流   Java中的字节流处理的基本单位为单个字节,它通常用来处理二进制数据。Java中基本的两个字节流类是InputStream和OutputStream,它们分别代表了组基本的输入字节流和输出字节流。InputStream类与OutputStream类均为抽象类,我们在实际使用中通常使用Java类库中提

weixin_38656989

java 字节流和字符流的区别详解

主要介绍了java 字节流和字符流的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

weixin_38731226
评论 3
收藏 已收藏
分享
返回顶部
chg2008
Java SE 62,621 成员 307,251 内容