java7新特性4——快速读取文件

2017-04-01  本文已影响310人  不迷失

java7快速读写文件

1f2f7374e1990b4bb551fd141bc4a53d

1.打开文件

Java 7可以直接用带缓冲区的读取器和写入器或输入输出流(为了和以前的Java I/O代码兼容)打开文件。下面的代码演示了Java 7如何用Files.newBufferedReader方法打开文件并按行读取其中的内容。

BufferedWriter writer=Files.newBufferedWriter(path,Charset.forName("utf-8"))

注意编码的设置,以防乱码。

打开一个用于写入的文件也很简单。 注意StandardOpenOption.WRITE选项的使用,这是可以添加的几个OpenOption变参之一。它可以确保写入的文件有正确的访问许可。其他常用的文件打开选项还有READ和APPEND。

BufferedWriter writer=Files.newBufferedWriter(path,Charset.forName("utf-8"),StandardOpenOption.APPEND);
      <!-- more -->

2.简化读取和写入 辅助类Files有两个辅助方法,用于读取文件中的全部行和全部字节。也就是说你没必要再用while循环把数据从字节数组读到缓冲区里去。

完整示例代码

package java7;

import java.io.BufferedWriter;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.*;
import java.util.List;

/**
 * Created by xieqiang on 2017/3/30.
 */
public class QuickReadAndWrite {

    public static void main(String[] a) throws IOException {
        Path path= Paths.get("/Users/xieqiang/test.txt");
        try(
            //如果文件存在则直接打开,否则创建文件    
            BufferedWriter writer=Files.newBufferedWriter(path,Charset.forName("utf-8"));
            
            //可以指定打开文件的模式,这里表示追加文件
            //BufferedWriter writer=Files.newBufferedWriter(path,Charset.forName("utf-8"),StandardOpenOption.APPEND);
        ) {
            writer.write("hello,java7,我是不迷失");
            writer.newLine();
            writer.write("test");
            System.out.println("ok");
        }
        

        List<String> lines= Files.readAllLines(path);
        System.out.println(lines);
    }
}

--

@不迷失|知识改善生活

专注技术研究与视频教学,分享有价值的技术与经验,关注程序员的发展!

--
@不迷失技术博客

微信公众号:java技术(javajidi_com)

技术交流群:245130488

--

教学视频

QQ课堂

百度传课

上一篇下一篇

猜你喜欢

热点阅读