java - 写入大量小文件

标签 java file io

我已经编写了用于将字符串写入文件的 Java 代码。字符串的大小几乎不会是 10KB。

下面是我编写的用于写入文件的代码。我编写了 3 种写入文件的方法。

void writeMethod(String string, int m)
{
    if (m == 1) 
    {
        FileChannel rwChannel = new RandomAccessFile(filePath, "rw").getChannel();
        ByteBuffer wrBuf = rwChannel.map(FileChannel.MapMode.READ_WRITE, 0, string.length() * 1);
        wrBuf.put(string.getBytes());
        rwChannel.close();
    }

    if (m == 2)
    {
        FileOutputStream fileOutputStream = new FileOutputStream(filePath);
        fileOutputStream.write(string.getBytes());
        fileOutputStream.close();
    }

    if (m == 3)
    {
        FileWriter bw  new FileWriter(filePath);
        bw.write(string);
        bw.close( );
    }
}

**忽略错误

我从 3 个线程调用上述函数,每个线程一个方法。我不确定哪一个最快。如果不是这几种方式,哪一种好呢?我必须写入 17,000,000 个文件。

最佳答案

您可能还想尝试使用 java.nio.file 包作为测试目的的方法之一。

类似于:

Path path = Paths.get(filePath);
Files.write(path, string.getBytes(), null);

关于java - 写入大量小文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22334358/

相关文章:

java - 如何从另一个类更新 Activity 的 TextView

python - 从一个非常大的文件中选择一个随机行,从命令行

java - 查询 Junit @parameters 方法的返回类型和测试类构造函数参数类型

java - Sharedpreferences 中的值输入无效

linux - 可执行文件在 Ubuntu linux 中显示为 "Link to symbolic link"

java - 如何创建/格式化 .txt 文件以便 eclipse/java 可以读取它?

如果存在则快速附加到文件,否则创建文件

java - 解释 Scanner close( ) 方法 Java

android - 如何在文件中写入字节而不覆盖它

java - SQL Server 中的存储过程需要输出参数作为输入