IO流的学习(二)

来源:互联网 发布:a股程序化交易 知乎 编辑:程序博客网 时间:2024/05/17 23:21

  IO字节流:  InputStream  和    OutputStream

 比如对一个图片数据进行操作时,就要用到字节流。

              -----main----

   FileOutputStream  fos=new FileOutputStream("demo.txt")   //创建一个字节输出流

                                    fos.write("abc".getBytes())      //此处将字符串转为字节数组

                                    fos.close();  //这里就不用刷新,因为此时没有使用缓冲区

 

 

例子:打印fox.txt 中的内容,采用read()字节数组的方法。

 FileInputStream fis=new FIleInputStream(fox.txt);  //建立字节读取流,和文件关联

        byte[]  by=new byte[1024];

            int len=0;

   while((len=fis.read(by)!=-1))             //该read方法每次取一个数组的数据,当取完之后,再取时则返回 -1;

{

    System.out.println(new String(by,o,len));   //将字节数组转成字符串输出

}

————————

改字节流中有个方法::fis.available() 输出文件的字节数,当文件很小时,上面代码可以简写为:

   byte[]  by=new  byte[fis.available()];  //  此处定义了和文件大小刚好的字节数组,可以刚好放下该文件,就避免了上面代码的循环读写数组。

     fis.write(by);                                     //但是一般不建议这样操作,因为一般文件较大,直接在内存在创建如此大的数组,容易内存溢出。

   System.out.println(new String(by));

————————

常用对字节流文件的操作

  FileInputStream        FileOutputStream            BufferedInputStream                       BufferedOutputStream

 

重点例子::从键盘获取对象。

1、从键盘获取字节流对象;

          InputStream  in=System.in;

2、使用转换流,让字节流对象转换为字符流对象。

    InputStreamReader   isr=new InputStreamReader(in);

3,为提高效率,将字符串进行缓冲区技术的高效操作。

 BufferedReader  bfr=new BufferedReader(isr);

 

将以上3步简化为::BufferedReader  bfr=new BufferedReader(new InputStreamReader(System.in));  此句要求重点记忆,一旦涉及键盘录入,即可使用此句。因为Buffered可以按行操作,能提高效率

-----

同时对应的 将字符流转成字节流

 OutputStream out=System.out;

OutputStreamWriter  osw=  new OutputStreamWriter(out);

BufferedWriter   bfw=new BufferedWriter(osw);

 

简写: BufferedWriter bfw=new BufferedWriter(new OutputStreamWriter(System.out))

时候时候使用转换流呢?

   转换流是字节流和字符流之间的桥梁。 通常涉及到字符编码的转换时,就需要转换流。

-------------

  流操作的基本规律:: 两个明确:

  1、明确 源和目的;

源:输入流, InputStream   ,Reader

目的:输出流,OutputStream          Writer

2、明确操作的是否是纯文本

  是: 字符流

否:字节流

     例如::复制一个文件,  分开对源和目的进行分析

  对源:是一个纯文本文件,用Reader,  再是从硬盘上,那么就用FileReader.……………………

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

原创粉丝点击