java中文件的不同种类的对象

时间:2014-03-30 07:27:13

标签: java

我正在做一个项目,其中有很多文件我必须处理。当我必须以不同的方式提供文件时出现问题:

  1. 文件将在每行中包含一个字符串
  2. 每行中的字符数,例如:

    1st line :  A B 4
    
    2nd line :  6 C A 6 & U #
    
    etc.
    
  3. 文件将包含否。例如。

    第1行:Lion Panther美洲虎等

  4. 我已经阅读了如何有效地处理文件但是我很困惑何时使用Buffered Streams和Unbuffered。如果我正在使用BufferedStream,则应使用BufferInputStreamBufferReader / BufferWriter

    同样,我对 I / O流,文件I / O流,ByteArray I / O流 感到困惑。有很多东西。任何人都可以建议我何时使用哪一个以及为什么?根据不同情况可以有效处理什么?

1 个答案:

答案 0 :(得分:1)

嗯,可能没有直接的答案,但如果你感到困惑,你不必担心。关于缓冲 Unbufferred 的讨论已经多次进行过。

例如,在此链接中:bufferred vs non-bufferred,提供了一个很好的提示(检查标记为正确的答案)。这是因为在使用Bufferred流时,这些流存储在称为(令人惊讶的) buffer 的小内存区域中。写入数据也是如此(它们在存储到硬存储器之前进入缓冲区)。这提高了性能,因为降低了I / O操作的开销(这取决于操作系统)。查看Java Doc:Bufferred Streams

因此,为了清楚起见,当您需要提高I / O操作的性能时,请使用 Bufferred 流。如果要确保在继续之前写入输出,请使用 Unbufferred 流(因为在从缓冲区写入/向缓冲区写入时可能始终发生错误,例如,当您想要写入日志时,它可能一直打开,所以不需要访问它,不需要缓冲区。)