我正在做一个项目,其中有很多文件需要处理。当我必须以不同的方式提供文件时,问题就出现了,例如:
- 文件的每一行将包含一个字符串
每行中的字符数,例如:
1st line : A B 4 2nd line : 6 C A 6 & U # etc.
文件将不包含。字符串例如
第一行:Lion Panther jaguar 等
我已经阅读了如何有效地处理文件,但我很困惑何时使用缓冲流以及何时使用无缓冲。如果我使用 BufferedStream,则应使用 BufferInputStream
和 BufferReader
/BufferWriter
。
同样,我对I/O Stream、File I/O Stream、ByteArray I/O Stream感到困惑。有很多事情。谁能建议我何时使用哪一种以及为什么?针对不同场景,如何高效处理?
最佳答案
嗯,这个问题可能没有直接的答案,但如果您感到困惑,也不必担心。关于缓冲和无缓冲的讨论之前已经进行过很多次了。
例如在此链接中:bufferred vs non-bufferred ,给出了一个很好的提示(检查标记为正确的答案)。这是因为在使用 Bufferred 流时,这些流存储在一个称为(令人惊讶的是)缓冲区的小内存区域中。写入的数据也会发生同样的情况(它们在存储到硬盘之前先进入缓冲区)。这提高了性能,因为降低了 I/O 操作的开销(取决于操作系统)。检查Java文档:Bufferred Streams
因此,为了明确起见,当您需要提高 I/O 操作的性能时,请使用 Bufferred 流。当您想要确保在继续之前已写入输出时,请使用无缓冲流(因为在从缓冲区写入/写入缓冲区时可能总是会发生错误,例如当您想要写入日志时,它可能一直打开,因此不需要访问它,不需要缓冲区)。
关于java - java中文件的不同类型的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22741412/