码迷,mamicode.com
首页 > 其他好文 > 详细

文件输出输入流

时间:2016-06-12 14:02:59      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!