zoukankan      html  css  js  c++  java
  • Java IO流 FileOutputStream类 和 FileInputStream类 FileReader类和FileWriter类

    转自:http://blog.csdn.net/tianzhw/article/details/6117692

    FileOutputStream类和FileInputStream类,他们的父类分别是OutputStream类和InputStream类。

    FileOutputStream类FileInputStream类都没有子类了。它们的父类都是抽象类不能实例化。

    所以FileOutputStream类和FileInputStream类,就是其父类最直接的实现。

    FileInputStream类在创建的时候有2个构造方法,

    一个直接指定输入流的IO设备的路径,或者是指定一个File类对象。

    并且指定路径或者File对象必须是存在并且没有别其他IO输入或输出流打开的。

    下面是这2个类的一个小例子:特别注意的代码中的close方法上面的注释有错误,刷先的方法调用是在write方法调用的。这一点区别字符流里面。

     1 import java.io.FileInputStream;
     2 import java.io.FileOutputStream;
     3 public class FileStream {
     4     /**
     5      * @param args
     6      * @throws FileNotFoundException
     7      */
     8     public static void main(String[] args) throws Exception {
     9         // TODO Auto-generated method stub
    10         FileOutputStream outputStream = new FileOutputStream("file.txt");
    11         outputStream.write("www.tianzhw.com".getBytes());// 因为是字节流,所以只能是一次写入一个字节。
    12         /*
    13          * 一般具有flush方法的输出流,其内部都是有缓存区实现的。
    14          * 其原因就是每次都操作硬盘对cup的使用率太大,
    15          * 通过缓存区的实现就可以降低了cup的使用率。
    16          */
    17         outputStream.flush();
    18         /**
    19          * close方法一般在实现中,都会调用flush 方法。
    20          */
    21         outputStream.close();
    22         byte[] b = new byte[1024];
    23         FileInputStream in = new FileInputStream("file.txt");
    24         int i = in.read(b);//方法的返回的数字,就是读出了多少个字节
    25         System.out.println(new String(b, 0, i));// 这里读取也是一个字节后然后给你转化成字符串输出
    26         in.close();
    27     }
    28 }

        同上面一样,FileReader类和FileWriter类 也是Reader类和Writer类的子类。

        但是他是字符流了。可以直接操作字符或者直接操作文本。

        我们这里要注意的FileWriter的write方法内部没有调用flush方法,需要我们自己调用。

     1 import java.io.FileNotFoundException;
     2 import java.io.FileReader;
     3 import java.io.FileWriter;
     4 import java.io.IOException;
     5 public class FileStream2 {
     6     public static void main(String[] args) throws Exception {
     7         WriterAndReader();
     8     }
     9     private static void WriterAndReader() throws IOException,
    10             FileNotFoundException {
    11         FileWriter writer = new FileWriter("file2.txt");
    12         writer.write("您好 中国");
    13         writer.flush();
    14         writer.close();
    15         char[] chr = new char[1024];
    16         FileReader reader = new FileReader("file2.txt");
    17         int i = reader.read(chr);
    18         System.out.println(new String(chr, 0, i));
    19         reader.close();
    20     }
    21 }

     /**

    FileReader、FileWriter分别是对文本文件的读写使用的封装了一些字符集操作。
    FileInputStream/FileOutputStream是集成InputStream/OutputStream的文件读写流,用于读写任何文件,
    可以作为构造其他InputStream/OutputStream的基础

    **/

  • 相关阅读:
    《Google, Microsoft and Apple building online storage havens: you win》
    asp数据库:ASP连接access与SQL SERVER数据库代码
    SQL SERVER中文编码问题
    tomcat与iis服务器的区别
    ewebeditor使用总结
    window.onload兼容ie和ff以及多次调用导致相冲突的解决方法
    js nextSibling属性和previousSibling属性
    安装ms word时需要的正版windows xp序列号
    asp中的父级目录
    asp数据库:Microsoft JET Database Engine (0x80004005)
  • 原文地址:https://www.cnblogs.com/yaowukonga/p/2959265.html
Copyright © 2011-2022 走看看