java - 如何在使用 FileInputStream() 创建的文件的开头查找()

标签 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*/       
}

最佳答案

您可以使用 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 .

关于java - 如何在使用 FileInputStream() 创建的文件的开头查找(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29446426/

相关文章:

java - java泛型中的一个奇怪错误

java - 等待两分钟调用一个方法

java - 不可序列化父类的可序列化子类

java - 存储在 ArrayList 中的对象打印出正确的值。 Comparable Interface 是如何工作的?

java - 在 Java 1.4 中如何查看子字符串是否存在于另一个字符串中?

java - Jsoup选择并迭代所有元素

java - 我们应该在哪里保存我们的二进制测试数据?

java - 可以从用户输入的列表中获取单独的数字

java - 在 Reentrantlock 上使用 lockInterruptibly 时如何避免 IllegalMonitorStateException

java - 与 Postgres 数据库的连接丢失