老师,读取文件为什么会是乱码错误
来源: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就可以了哦!
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
相似问题