码迷,mamicode.com
首页 > 编程语言 > 详细

Java 输入输出流

时间:2018-04-15 22:56:36      阅读:301      评论:0      收藏:0      [点我收藏+]

标签:面向   test   null   NPU   path   one   pre   缓冲区   一个   

     这篇不是为了系统介绍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 输入输出流

标签:面向   test   null   NPU   path   one   pre   缓冲区   一个   

原文地址:https://www.cnblogs.com/SawakoJ/p/8849575.html

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