如何在使用FileInputStream()创建的文件的开头搜索()

时间:2015-04-04 12:29:40

标签: java

如何寻找文件的开头?

我需要再次阅读该文件(例如,其他流程/应用程序更改的数据),因此不再需要close / open()

File patternDirectory = new File("/temp/conf_file");
FileInputStream dataInput = new FileInputStream(new File(patternDirectory .getAbsolutePath().toString()));

private void readfile() {
    int len;
    byte[] buffer = new byte[1024];
    if ((len = dataInput.read(buffer)) != -1)
        System.out.println("Read OK:" + len); 
    /* File is small and this will reach at end of file*/       
}

1 个答案:

答案 0 :(得分:1)

您可以使用bufferedReaderFileInputStream一起阅读数据。如果文件已经关闭,这将有效,如果没有,如@bot所述,我不认为这可以用Java完成。

他举例说明了如何使用bufferedReaderFileInputStream

FileInputStream fin = new FileInputStream(//file path);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fin));

如果您想重新定位到文件的开头,请使用

fin.getChannel().position(0);
BufferedReader foo = new BufferedReader(new InputStreamReader(fin));

这将使用新的阅读器重新定位到文件的开头。

详细了解BufferedReader here