【发布时间】:2015-01-10 18:52:54
【问题描述】:
所以我正在尝试将文本添加到 txt 文件中,我已成功执行此操作,系统会提示用户他们想要添加的内容,并且当我在运行程序后打开 txt 文件时将其包含在内。
现在,这是我的问题:我第一次尝试向 txt 文件添加内容时,它会创建一个空白行,并且在该行下它将包含用户添加的信息,原因是当 Java 打开我的文件,打字光标在最后一行的底部,没有空格,准备输入信息,像这样:
好的,很酷,所以这意味着每当我从我的 Java 程序向 txt 文件中添加任何内容时,它都会自动在一个新行上,我不需要添加任何 println 间距来输入一个新行。现在这里出现了另一个问题,在 Java 将新文本放入 txt 文件之后,它会将打字光标留在添加的新行的 END 处,而不是在它下面没有数据的新行处。所以这意味着如果我尝试添加两次新信息,它将出现在同一行而不是新信息。所以为了解决这个问题,我只是添加了一个
pw.println();
在我的打印作者开始时声明,以确保它将光标放在新行上。但是现在,当我在添加最后一行代码后第一次尝试添加数据时,它将在最后一行数据和我添加的新数据行之间创建一个空白空间。像这样:
现在,每当用户想要搜索数据库时,因为我在搜索中进行了空检查,每当程序遇到我的原始数据和已添加的新数据之间的空行时,它都不会继续搜索,因此用户添加到数据库中的任何信息都将变得无用,Java 将无法搜索它,因为分隔它的空行。
基本上,要么我保留 pw.println() 并显示所有数据,但在原始数据之间有一个空格,因此无法搜索它,或者我可以删除它,然后删除所有新数据添加出现在同一行,这不是我想要的。
这是给txt文件添加数据的代码:
public static void add() throws IOException
{
String filename="Elements.txt";
PrintWriter pw = new PrintWriter(new FileWriter(filename,true));
pw.println();
String element=JOptionPane.showInputDialog(null, "Enter name of element.", "Add an Element", JOptionPane.INFORMATION_MESSAGE);;
pw.write(element + ",");
String symbol=JOptionPane.showInputDialog(null, "Enter symbol of element.", "Add an Element", JOptionPane.INFORMATION_MESSAGE);;
pw.write(symbol + ",");
String atomicNumber=JOptionPane.showInputDialog(null, "Enter atomic number.", "Add an Element", JOptionPane.INFORMATION_MESSAGE);;
pw.write(atomicNumber + ",");
String atomicMass=JOptionPane.showInputDialog(null, "Enter atomic mass", "Add an Element", JOptionPane.INFORMATION_MESSAGE);;
pw.write(atomicMass + ",");
String valence=JOptionPane.showInputDialog(null, "Enter # of valence electrons.", "Add an Element", JOptionPane.INFORMATION_MESSAGE);;
pw.write(valence);
pw.close();
}
有什么方法可以操纵 txt 文件上的光标以确保添加的所有新数据都能正确显示,以便用户之后可以搜索它?打开 txt 文件并将光标放在我想要的位置不起作用。
【问题讨论】:
标签: java database cursor cursor-position