Java - 使用 BufferedWriter 和 BufferedReader,

标签 java file file-io

<分区>

我正在尝试生成随机数作为 ID,并将它们保存在一个文件中以便于访问它们。我目前正在使用 BufferedWriter 将这些写入文件,但问题是我不太确定如何找到我应该开始写入文件的位置。我目前正在尝试使用 BufferedReader 来确定下一行要写在哪里,但我不确定我应该如何保存这个偏移量或任何东西,或者如何表示新行。

void createIds(){
    File writeId = new File("peopleIDs.txt");
    try {
        FileReader fr = new FileReader(writeId);
        BufferedReader in = new BufferedReader(fr);
        FileWriter fw = new FileWriter(writeId);
        BufferedWriter out = new BufferedWriter(fw);
        String line;
        while((line = in.readLine()) != null){
            //How do I save where the last line of null is?
            continue;
        }
    } catch (IOException ex) {
        System.out.println(ex.getMessage());
    }
}

最佳答案

如果您只想将 ID 添加到文件末尾,请使用以下 FileWriter 构造函数:

FileWriter fw = new FileWriter(writeId, true);

这将以追加模式打开 FileWriter,允许您将输出写入预先存在的文件。

如果您想将 ID 写入现有文件中的特定位置而不是仅写入末尾,我不确定在不首先解析文件内容的情况下是否可行。

有关更多信息,请参阅 FileWriter 的 JavaDoc .

关于Java - 使用 BufferedWriter 和 BufferedReader,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20673812/

相关文章:

java - 如何获取jar文件内的文件夹路径?

Java - 删除文件夹及其内容

java - 指示 JVM validator 何时验证类

java - 在 HashMap Java8 中传递用户定义的合并行为方法

java - Android-如何访问PDF页面的属性?

c++ - 使用 std::fstream 从文件读取和追加文件

c++ - 二进制与文本模式下的文件操作——性能问题

Java 需要过长的时间来确定字符串是否与 String.matches 匹配

java - 在 UNIX 中替换换行符

file - 中间文件是不好的做法吗?