gpt4 book ai didi

java - 使用 RandomAccessFile.writeBytes() 写入的文件中出现意外的额外字符

转载 作者:行者123 更新时间:2023-12-01 21:18:27 25 4
gpt4 key购买 nike

我正在尝试使用“RandomAccessFile”将字符串写入(和读取)文件,但是“fio.writeBytes(file1str)”在字符串末尾添加了一些垃圾:

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println("Enter the D of planets: ");
file1str = in.readLine();
fio = new RandomAccessFile(new File("file1"), "rw");
fio.writeBytes(file1str);
System.out.println("Your enter: ");
for (String retval: file1str.split(",")) {
System.out.println(retval);
}
fio.close();
System.out.println("Data saves to 'file1'!");
}
catch(FileNotFoundException e){
System.out.println("File not found");
}
catch(IOException e){
System.out.println("Error1");
}


}

enter image description here

...但是如果我们打开文件,我们会在末尾看到额外的 10700: enter image description here

抱歉我的英语不好

最佳答案

当您创建模式为“rw”的RandomAccessFile时,文档显示“如果文件尚不存在,则将尝试创建它。”

这意味着如果文件已经存在,则不会尝试创建它、删除它、截断它等。

所以,无论出于什么原因,您已经有了一个包含 9 个字符的“file1”,而您的代码所做的只是覆盖前 4 个字符。 (“5,10”部分。)

尝试在写入文件之前删除该文件,一切都应该没问题。

或者,考虑选择 RandomAccessFile 一开始就不是一个好主意,而是尝试使用 new BufferedWriter(new FileWriter(file)) ,以普通人通常使用的正常方式编写普通文本文件。

关于java - 使用 RandomAccessFile.writeBytes() 写入的文件中出现意外的额外字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39547813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com