写在前面


关于字符和字节,例如文本文件,XML这些都是用字符流来读取和写入。而如RAR,EXE文件,图片等非文本,则用字节流来读取和写入。

读取文件

文件读取,用到BufferdReader和FileReader,BufferdReader用于缓存加速,FileReader用于读取文件。

public class BufferInputFile { 
 
    public static void main(String[] args) throws IOException { 
        String file = "F:" + File.separator + "io" + File.separator + "hello.txt"; 
        BufferedReader reader = new BufferedReader(new FileReader(file)); 
        String s; 
        StringBuilder builder = new StringBuilder(); 
        while((s = reader.readLine()) != null){ 
            builder.append(s); 
        } 
        reader.close(); 
    } 
}

文件写入

文件写入,用到了PrintWriter,BufferedWriter和FileWriter。PrintWriter提供了print系方法,可以格式化输出,BufferedWriter提供了缓存加速,FileWriter写入文件。

public class TestFileOut { 
    public static void main(String[] args) throws IOException { 
        String file = "F:" + File.separator + "io" + File.separator + "hello.txt"; 
        String outFile = "F:" + File.separator + "io" + File.separator + "hello2.txt"; 
        BufferedReader in = new BufferedReader(new FileReader(file)); 
        PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(outFile))); 
 
        String s; 
        while((s = in.readLine()) != null){ 
            out.println(s); 
        } 
 
        out.close(); 
        in.close(); 
    } 
}

上述的文件读取和写入,都是实战中比较恰当的写法。

PrintWriter中的println和write方法的区别

其实翻阅了源码得知,print方法实际也调用了write方法。一般上,使用PrintWriter都是会使用print系的方法。

下面这两个语句的作用相同:
out.write(“hello.txt\n”);
out.println(“hello.txt”);

PrintWriter的readLine()方法是读一个文本行,只有读取到回车或换行符号时,一行文本才读取完成。

发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

Java IO系列(一):File类详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。