使用JavaNIO读取大文件

使用JavaNIO读取大文件,java,nio,large-files,Java,Nio,Large Files,我需要读一个大文件的内容。为此,我在谷歌上搜索,找到了很多方法和资源。但我还是很困惑,这是读取大文件的方法(在我的例子中需要考虑的因素是内存分配、性能、大文件) 使用FileChannel 使用文件。readAllLines 使用BufferedReader 有人能提供这方面的指导吗?您最好的选择是懒洋洋地阅读文件。每次取一行并处理 例如:- Stream<String> lines = Files.lines(Paths.get("C:/files", "yourfile.txt"

我需要读一个大文件的内容。为此,我在谷歌上搜索,找到了很多方法和资源。但我还是很困惑,这是读取大文件的方法(在我的例子中需要考虑的因素是内存分配、性能、大文件)

  • 使用
    FileChannel
  • 使用
    文件。readAllLines
  • 使用
    BufferedReader

  • 有人能提供这方面的指导吗?

    您最好的选择是懒洋洋地阅读文件。每次取一行并处理

    例如:-

    Stream<String> lines = Files.lines(Paths.get("C:/files", "yourfile.txt"));
    
    streamlines=Files.lines(path.get(“C:/Files”、“yourfile.txt”);
    
    然后处理后面的句子

    从文件中:-

    public static Stream<String> lines(Path path, Charset cs) throws IOException
    
    公共静态流行(路径、字符集cs)引发IOException
    
    将文件中的所有行作为流读取。与readAllLines不同,此 方法不会将所有行读取到列表中,而是填充 当溪流被消耗时,你会懒洋洋的


    你怎么处理这些内容?另外,由于您提到
    .readAllLines()
    ,我认为内容是文本?@DavidG我实际上没有添加这些行。这里有点不对劲。。。我从标题中删除了大写字母并修改了列表(也将“I”改为“I”)但那是all@DavidG他没有添加这些内容。他只是在别人在他之前进行编辑后没有刷新他的编辑。我不知道他是否只是在编辑过程中忽略了关于这一事实的信息。@DavidG我知道我只是检查了一下,但我没有添加这些行,我敢肯定。汤姆,是的,我想这就是问题所在。Sorry@LBesancon是的,我看到另一个用户tr英再加一次,对不起指责你!:)这对表演有好处吗?我可以用这个吗case@KALYANIYOGESWARANATHAN是的,因为处理一次只进行一行(惰性地),所以它不会成为问题performance@KALYANIYOGESWARANATHAN如果你找到了你想要的,请接受答案。