分别使用 FileInputStream和FileOutputStream、BufferedInputStream和BufferedOutputStream、FileReader和

 我来答
reusu
2012-06-11 · TA获得超过395个赞
知道答主
回答量:235
采纳率:0%
帮助的人:144万
展开全部
FileInputStream与BufferedInputStream区别:
FileInputStream是字节流,BufferedInputStream是字节缓冲流,使用BufferedInputStream读资源比FileInputStream读取资源的效率高(BufferedInputStream的read方法会读取尽可能多的字节),且FileInputStream对象的read方法会出现阻塞;

FileInputStream与FileReader区别:
FileInputStream是字节流,FileReader是字符流,用字节流读取中文的时候,可能会出现乱码,而用字符流则不会出现乱码,而且用字符流读取的速度比字节流要快;
追问
详细代码
追答
FileStreamDemo.java
import java.io.*;
public class FileStreamDemo {
public static void main(String[] args) {
try {
FileInputStream in = new FileInputStream("FileCopy.java");
FileOutputStream out = new FileOutputStream("fileoutput.txt");
byte[] bytearray = new byte[1024];
do {
in.read(bytearray, 0, 1024);
out.write(bytearray);
} while (in.available() > 0);
in.close();
out.close();
} catch (ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
BufferedStreamDemo.java
import java.io.*;
public class FileStreamDemo {
public static void main(String[] args) {
try {
FileInputStream in = new FileInputStream("FileCopy.java");
FileOutputStream out = new FileOutputStream("bufferoutput.txt");
BufferedInputStream bufferedIn = new BufferedInputStream(in);
BufferedOutputStream bufferedOut = new BufferedOutputStream(out);
byte[] data = new byte[1];
while (bufferedIn.read(data) != -1) {
bufferedOut.write(data);
}
bufferedOut.flush();
bufferedIn.close();
bufferedOut.close();
} catch (ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
import java.io.*;
class CopyText
{
public static void main(String[] args) throws IOException
{
FileReader fr = new FileReader("FileCopy.java");
FileWriter fw = new FileWriter("filewriter.txt");
char[] arr = new char[1024];
int num = 0;
while((num=fr.read(arr))!=-1)
{
fw.write(arr,0,num);
}
fw.close();
fr.close();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式