Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中不同类型的文件对象_Java - Fatal编程技术网

java中不同类型的文件对象

java中不同类型的文件对象,java,Java,我正在做一个项目,其中有这么多的文件,我必须处理。当我必须以不同的方式提供文件时出现了问题,如: 文件将在每行中包含一个字符串 每行中的字符数,例如: 1st line : A B 4 2nd line : 6 C A 6 & U # etc. 文件将包含字符串的数量,例如 第一线:狮豹美洲虎等 我读过如何有效地处理文件,但我很困惑什么时候使用缓冲流,什么时候不使用缓冲流。如果我使用的是BufferedStream,那么应该使用的是BufferInputStream和Buff

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

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

    1st line :  A B 4
    
    2nd line :  6 C A 6 & U #
    
    etc.
    
  • 文件将包含字符串的数量,例如

    第一线:狮豹美洲虎等

  • 我读过如何有效地处理文件,但我很困惑什么时候使用缓冲流,什么时候不使用缓冲流。如果我使用的是BufferedStream,那么应该使用的是
    BufferInputStream
    BufferReader
    /
    BufferWriter


    类似地,我混淆了I/O流、文件I/O流、ByteArray I/O流。有这么多东西。有谁能告诉我什么时候用哪一种,为什么用?根据不同的场景,什么是有效的处理方法?

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

    例如,在这个链接中:,给出了一个很好的提示(检查标记为正确的答案)。这是因为在使用Bufferred流时,这些流存储在一个称为(令人惊讶的)buffer的小内存区域中。写入的数据也会发生同样的情况(它们在被存储到硬盘之前进入缓冲区)。这提高了性能,因为降低了I/O操作(依赖于操作系统)的开销。检查Java文档:


    因此,为了清楚起见,当您需要提高I/O操作的性能时,可以使用Bufferred streams。如果要确保在继续之前已写入输出,请使用非缓冲流(因为在从缓冲区写入/写入缓冲区时可能总是发生错误,例如,当您要写入日志时,它可能一直处于打开状态,因此不需要访问它,也不需要缓冲区).

    您是否阅读了他们的javadoc以了解他们的用途?你读过IO教程吗?前两部分至少会告诉您,流代表字节,读写器代表字符。是的,我已经读过了,我很清楚字节和字符的概念以及系统调用。问题只在于何时使用when进行有效处理。还有一个问题是如何从文件中一次读取一个字符串,如果我们有像lion panther jaguar这样的文件,现在我想先读取lion,然后读取panther,然后读取jaguar,以便对这些数据执行不同的操作。有人能帮我吗?这与我们在任何编程竞赛输入文件中得到的以相同方式包含数据的情况类似。你的建议是通过写入缓冲区来降低速度,这与你文章的其余部分相矛盾。