Java 输入输出流

Posted sawakoj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 输入输出流相关的知识,希望对你有一定的参考价值。

     这篇不是为了系统介绍Java的输入输出流机制的,仅为个人笔记

     作为Java小菜,每次上网搜别人的Java读写文件的程序参考,总觉得一头雾水,为什么要声明这么多类,规则是什么,全然分からない,所以带着疑问稍微了解了一下;

     Java中存在两种输入输出模式的类,面向字节(InputStream&OutputStream)和面向字符(Reader&Writer),另外还有一个处理文件和文件夹的类(File);

     Java的输入输出流类采用装饰者模式,由以上5个类衍生出许许多多其他类,这里放一张网上搜到的图,大家感受下

技术分享图片

       Java支持很多类型的输入源和输出端,但这里不打算展开讲,我只想聊聊文件的读取和输出。众所周知,计算机访问外部设备非常耗时,而访问缓冲区则很快。因此为了提高读写文件的效率,除了程序与流节点之间必要的读写机制外,还需要增加缓冲机制。

 具体例子如下:

技术分享图片
package com.practise.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.OutputStreamWriter;
import java.io.BufferedWriter;
//所有以 Stream 结尾的类都是面向字节如 FileInputStream/FileOutputStream
//以 Reader/Writer 结尾的类是面向字符
//以 File 开头的类是面向外存
//以 Buffered 开头的类是面向缓冲区
public class ReadAndWrite 
{
    public static void main (String[] args)
    {
        String path = "D:\\\\Coding\\\\Java\\\\TestJava\\\\testdata\\\\";
        try {
            File inFile = new File(path + "in.txt");
            File outFile = new File(path + "out.txt");
            InputStreamReader inSr = new InputStreamReader( new FileInputStream(inFile));
            BufferedReader inBr = new BufferedReader(inSr);
            
            OutputStreamWriter outSw = new OutputStreamWriter( new FileOutputStream(outFile));
            BufferedWriter outBw = new BufferedWriter(outSw); 
            
            String line = "";
            while ((line = inBr.readLine()) != null)
            {
                outBw.write(line + "\\r\\n");
            }
            outBw.close();
            outSw.close();
            inBr.close();
            inSr.close();            
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }        
    }
}
View Code

 

以上是关于Java 输入输出流的主要内容,如果未能解决你的问题,请参考以下文章

java中输入输出流如何把数据输出为Excel表格形式

java中输入输出流如何把数据输出为Excel表格形式

Java 输入输出流

输入/输出

Java输入输出流详解

java题 任选一个文件,使用文件输入流,将其数据读取出来,并打印到控制台!! 代码简单能够有注释