标签:
1.字节流-----》读写以字节为单位
输入流: 读文件:InputStream
FileInputSream---->把文件作为字节流进行写操作
输出流: 写文件 OutputSteam
2.字符流-----》读写以字符为单位
输入流: 读文件:Reader
输出流: 写文件 Writer
所有的IO操作都会产生IO异常
在打开文件后,要关闭文件,否则有可能会存在意想不到的问题(一般在finally中关闭)
1 import java.io.FileInputStream; 2 import java.io.FileNotFoundException; 3 import java.io.IOException; 4 5 public class inputStreamDemo { 6 public static void main(String[] args){ 7 8 hh(); 9 // dh1();
10 11 } 12 13 public static void hh() { 14 FileInputStream dh=null; 15 try{ 16 dh =new FileInputStream("F:\\李刚1\\java\\jiava程序\\qq\\src\\jpanel.java"); 17 int aa; 18 aa=dh.read(); 19 while(aa!=-1){ 20 System.out.print((char)aa); 21 aa=dh.read(); 22 } 23 } catch (IOException e) { 24 25 e.printStackTrace(); 26 }finally{ 27 try { 28 dh.close(); 29 } catch (IOException e) { 30 e.printStackTrace(); 31 } 32 } 33 }
以上的方式存在两个问题:
1.以字符为单位的内容无法正常显示
2.读取的效率比较低
用以下方法可以解决
利用字节数组缓冲数据:
1 public static void dh1(){ 2 FileInputStream aa=null; 3 try { 4 aa=new FileInputStream("F:\\李刚1\\java\\jiava程序\\qq\\src\\jpanel.java"); 5 byte[] as=new byte[1024*10]; 6 int s=aa.read(as, 0, as.length); 7 String j=new String(as,0,s); 8 System.out.println(j); 9 } catch (Exception e) { 10 // TODO: handle exception 11 }finally{ 12 try { 13 aa.close(); 14 } catch (IOException e) { 15 // TODO Auto-generated catch block 16 e.printStackTrace(); 17 } 18 } 19 } 20 }
标签:
原文地址:http://www.cnblogs.com/lgshiwoo/p/5577258.html