day19/StreamDemo.java

来源:互联网 发布:2017京东双十一知乎 编辑:程序博客网 时间:2024/05/19 19:40
/*字节流读写操作:字节流的两个基类InputStream   OutputStream读字节流InputStream类下的一个方法:available()返回值类型是int*/import java.io.*;class StreamDemo {public static void main(String[] args) throws IOException{writeFile();readFile_1();readFile_2();readFile_3();}public static void writeFile() throws IOException{FileOutputStream fos = new FileOutputStream("fos.txt");fos.write("abcdeqq".getBytes());//字符串转换成字节数组fos.close();}//读一个字节,取一个字节 。public static void readFile_1()throws IOException{FileInputStream fis = new FileInputStream("fos.txt");int ch=0;while((ch=fis.read())!=-1){System.out.println((char)ch);}fis.close();}//先将字节流存入字节数组中,再判断取出。public static void readFile_2()throws IOException{FileInputStream fis = new FileInputStream("fos.txt");byte[] bt = new byte[1024];int len=0;while((len=fis.read(bt))!=-1){System.out.println(new String(bt,0,len));}fis.close();}//这种读取方式,在文件内容非常大时,就不适用。因为大文件时available()方法会内存溢出。//所以建议还是使用第二种读出方式。public static void readFile_3()throws IOException{FileInputStream fis = new FileInputStream("fos.txt");//int num = fis.available();//文本里面字母个数byte[] bt = new byte[fis.available()];//定义一个刚刚好的缓冲区。不用再循环了。fis.read(bt);System.out.println(new String(bt));fis.close();}}

0 0
原创粉丝点击