我正在尝试创建一个程序,用户可以在其中创建数据库并添加记录。我使用随机访问文件和我当前的代码,我能够写在文件上。但是,如果文件中还有其他记录,我希望用户添加的新记录附加在文件末尾的新行上。现在,它附加在文件的末尾,但与之前的最后一条记录位于同一行。你可以帮我改变我的代码来做我要求的事情。
这是enterData()的代码。
public static void enterData(String fileName) {
String temp = " ";
try {
RandomAccessFile OUT = new RandomAccessFile(fileName, "rw");
long fileSize = OUT.length();
System.out.print("Id: ");
try {
Id = Integer.parseInt(reader.readLine());
}catch (IOException e) {}
System.out.print("Experience: ");
try{
experience = Integer.parseInt(reader.readLine());
}
catch(IOException e){}
System.out.print("Wage: ");
try {
wage = Integer.parseInt(reader.readLine());
} catch (IOException e) {}
System.out.print("Industry: ");
industry = reader.readLine();
for (int i = 0; i<100 - industry.length(); i++){
StringBuilder sb = new StringBuilder();
sb.append(" ");
sb.append(industry);
industry = sb.toString();
}
FilePointerPosition = Id;
OUT.seek(fileSize);
String formatted = String.format("%20s%20s%20s%40s", Id, experience, wage, industry);
OUT.writeUTF(formatted);
OUT.close();
} catch (IOException e) {}
}
答案 0 :(得分:0)
要在新行中写入文件中的下一行文本,您只需在每条记录的末尾添加newline character
即可。为此,您可以通过在格式规范的末尾添加formatted
来格式化 字符串变量"\n"
。
String formatted = String.format("%20s%20s%20s%40s\n",
Id, experience, wage, industry);
//notice the "\n" in the end of the String format
OUT.writeUTF(formatted);
这将在写入formatted
的内容后将文件中的光标移动到新行,就像System.out.println()
方法在闪烁输出后将光标移到VDU上的新行一样。 / p>