首页 > 其他 > 详细

IO流

时间:2015-12-13 13:58:18      阅读:157      评论:0      收藏:0      [点我收藏+]

对文件进行操作:

写出到文件:

FileWriter(字符输出流),PrintWriter(字符输出流),FileOutputStream(字节输出流)

        String str = "中国人";
        //写出
        /*FileOutputStream fos  = new FileOutputStream("1.txt");
        fos.write(str.getBytes("UTF-8"));
        fos.close();*/
        /*FileWriter fw = new FileWriter("1.txt");
        fw.write(str);
        fw.close();*/
        PrintWriter pw = new PrintWriter("1.txt","utf-8");
        pw.write(str);
        pw.close();

从文件读入:

FileReader(字符输入流),BufferedReader(字符输入流),FileInputStream(字节输入流)

        //读入
        /*FileReader fr = new FileReader("1.txt");
        char[] buf = new char[1024];
        int len = fr.read(buf);
        String myStr = new String(buf,0,len);
        System.out.println(myStr);*/
        /*FileInputStream fr = new FileInputStream("1.txt");
        byte[] buf = new byte[1024];
        int len = fr.read(buf);
        String myStr = new String(buf,0,len,"UTF-8");
        System.out.println(myStr);*/
        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("1.txt"),"UTF-8"));
        String myStr = br.readLine();
        br.close();
        System.out.println(myStr);

对管道进行操作:

PipedWriter(字符输出流),PipedOutStream(字节输出流),PipedReader(字符输入流),PipedInputStream(字节输入流)
PipedInputStream的一个实例要和PipedOutputStream的一个实例共同使用,共同完成管道的读取写入操作。主要用于线程操作。

字节/字符数组:

CharArrayWriter,ByteArrayOutputStream,CharArrayReader,ByteArrayInputStream,是在内存中开辟了一个字节或字符数组。

Buffered缓冲流:

BufferedWriter,BufferedOutputStream,BufferedReader,BufferedInputStream是带缓冲区的处理流,缓冲区的作用的主要目的是:避免每次和硬盘打交道,提高数据访问的效率。

转化流:

OutputStreamWriter,InputStreamReader把字节转化成字符。

数据流:

DataOutputStream,DataInputStream
因为平时若是我们输出一个8个字节的long类型或4个字节的float类型,那怎么办呢?可以一个字节一个字节输出,也可以把转换成字符串输出,但是这样转换费时间,若是直接输出该多好啊,因此这个数据流就解决了我们输出数据类型的困难。数据流可以直接输出float类型或long类型,提高了数据读写的效率。

打印流:

PrintWriter,PrintStream一般是打印到控制台,可以进行控制打印的地方。

对象流:

ObjectOutputStream,ObjectInputStream把封装的对象直接输出,而不是一个个在转换成字符串再输出。
使用对象流需要实现Serializable接口,否则会报错。而若用transient关键字修饰成员变量,不写入该成员变量,若是引用类型的成员变量为null,值类型的成员变量为0

序列化流:SequenceInputStream。

对象序列化:把对象直接转换成二进制,写入介质中。

IO流

原文:http://www.cnblogs.com/tufujie/p/5042547.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!