老师,读取文件为什么会是乱码错误
来源:3-16 自由编程
qq_就是这样_1
2019-07-16 15:18:51
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class BufferStream {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
System.out.println("one.txt不用缓冲流来写:");
FileOutputStream fos=new FileOutputStream("one.txt",true);
FileInputStream fis=new FileInputStream("one.txt");
long start=System.currentTimeMillis();
int t=0;
while(t<100000){
char i='a';
fos.write(i);
t++;
}
int n=0;
while((n=fis.read())!=-1){
System.out.print((char)n);
}
long end=System.currentTimeMillis();
System.out.println("用时:"+(end-start));
fos.close();
fis.close();
System.out.println("**********************************");
System.out.println("two.txt用缓冲流来写:");
FileOutputStream fos2=new FileOutputStream("two.txt",true);
BufferedOutputStream bos=new BufferedOutputStream(fos2);
FileInputStream fis2=new FileInputStream("two.txt");
BufferedInputStream bis=new BufferedInputStream(fis);
long start1=System.currentTimeMillis();
int t1=0;
while(t1<100000){
char i='a';
bos.write(i);
t1++;
}
int n1=0;
while((n1=bis.read())!=-1){
System.out.print((char)n1);
}
long end1=System.currentTimeMillis();
System.out.println("用时:"+(end1-start1));
bos.close();
bis.close();
fos2.close();
fis2.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
}1回答
好帮手慕小班
2019-07-16
同学你好,1、这里根据题目要求,只需要计算普通流和缓冲流写入文件的时间就可以了哦!不需要读文件哦!例如:

2、根据同学的错误提示,是流的异常关闭,错误原因是:

如上所改将fis改为fis2就可以了哦!
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
相似问题