相关疑难解决方法(0)

用Java读取大文件

我需要一个非常了解Java的人和内存问题的建议.我有一个大文件(类似1.5GB),我需要在许多(例如100个小文件)较小的文件中剪切此文件.

我一般都知道怎么做(使用a BufferedReader),但我想知道你是否有关于内存的任何建议,或者提示如何更快地完成它.

我的文件包含文本,它不是二进制文件,每行大约有20个字符.

java memory-management file

59
推荐指数
4
解决办法
10万
查看次数

在Java中读取相对较大的字节文件的最快方法

使用Java的I/O方法读取相对较大的文件的最快方法是什么?我当前的解决方案使用BufferedInputStream保存到分配了1024字节的字节数组.然后将每个缓冲区保存在以ArrayList供以后使用.整个过程通过一个单独的线程(可调用接口)调用.

虽然不是很快.

    ArrayList<byte[]> outputArr = new ArrayList<byte[]>();      
    try {
        BufferedInputStream reader = new BufferedInputStream(new FileInputStream (dir+filename));

        byte[] buffer = new byte[LIMIT]; // == 1024 
            int i = 0;
            while (reader.available() != 0) {
                reader.read(buffer);
                i++;
                if (i <= LIMIT){
                    outputArr.add(buffer);
                    i = 0;
                    buffer = null;
                    buffer = new byte[LIMIT];
                }
                else continue;              
            }

         System.out.println("FileReader-Elements: "+outputArr.size()+" w. "+buffer.length+" byte each.");   
Run Code Online (Sandbox Code Playgroud)

java performance file-io

13
推荐指数
1
解决办法
2万
查看次数

标签 统计

java ×2

file ×1

file-io ×1

memory-management ×1

performance ×1