【问题标题】:Most efficient way to read characters from a file?从文件中读取字符的最有效方法?
【发布时间】:2013-05-03 21:04:29
【问题描述】:

在练习 Java 中的文件 I/O 时,我遇到了一个任务,我必须重写一个方法来查找与给定记录 ID 关联的记录数据。现在,我正在谈论的方法是使用包裹在 BufferedReader 中的 FileReader 来读取字符。 奇怪的是,分配本身表明使用 BufferedStreamReader(?) 可能不是从文件中检索字符的最有效方法。考虑到该方法包含 BufferedReader 而不是 BufferedStreamReader,我发现这更加令人困惑。

所以我的问题是,对 FileReader 使用 BufferedReader 包装器是否已经是读取文件中字符的最有效(就速度而言)方法?

编辑:分配讨论的是 BufferedStreamReader,而不是 BufferedInputStream

【问题讨论】:

标签: java performance file bufferedreader bufferedinputstream


【解决方案1】:

我没有遇到过 BufferedStreamReader 但会先使用 BufferedReader 将字符读取到字符串中,然后再逐个字符地读取,如果这就是您所说的。

            FileInputStream fs = new FileInputStream(filename);
            BufferedReader br = new BufferedReader(new InputStreamReader(fs));
            for (int j = 0; j < 0; j++) {//The the first Line
            String str = br.readLine().trim();
            char[] chars = str.toCharArray();
            String first = String.valueOf(chars[0]);//The first character
            String second = String.valueOf(chars[1]);//The second

            }

【讨论】:

  • 那么,你建议用 FileInputStream 替换 fileReader?
  • 那将是 InputStreamReader。即使您有很多文件,这也可以工作。
【解决方案2】:

ReaderInputStream 中读取字符。因此最好缓冲实际的文件系统访问,这里是BufferedInputStream,因为这可能会很慢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 2012-03-02
    • 1970-01-01
    相关资源
    最近更新 更多