Java 从文件中读取字符的最有效方法?

Java 从文件中读取字符的最有效方法?,java,performance,file,bufferedreader,bufferedinputstream,Java,Performance,File,Bufferedreader,Bufferedinputstream,在Java中练习文件I/O时,我遇到了一个任务,我必须重写一个方法来查找与给定记录ID关联的recorddata。现在,我所说的方法是使用一个包在BufferedReader中的文件读取器来读取字符。 奇怪的是,分配本身表明使用BufferedStreamReader(?)可能不是从文件中检索字符的最有效方法。考虑到该方法包含BufferedReader而不是BufferedStreamReader,我发现这更令人困惑 所以我的问题是,在文件阅读器中使用BufferedReader包装器是否已经

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

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


编辑:分配涉及的是BufferedStreamReader,而不是BufferedInputStream

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

我没有接触过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 fs=新的FileInputStream(文件名);
BufferedReader br=新的BufferedReader(新的InputStreamReader(fs));
对于(intj=0;j<0;j++){//第一行
String str=br.readLine().trim();
char[]chars=str.toCharArray();
String first=String.valueOf(chars[0]);//第一个字符
String second=String.valueOf(chars[1]);//第二个
}

那么,您建议用FileInputStream替换fileReader?这就是InputStreamReader。即使您有许多文件,这也可以工作。的可能重复