有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用游标向txt文件添加信息

因此,我试图将文本添加到一个txt文件中,我已经成功地做到了这一点,用户会被提示他们想要添加什么,并且在运行程序后打开txt文件时会包含这些内容

现在,我的问题是:当我第一次尝试向txt文件中添加内容时,它会创建一个空行,并在该空行下包含用户添加的信息,原因是当Java打开我的文件时,键入光标位于最后一行的底部,那里没有空间,可以输入信息,像这样:

enter image description here

好的,很酷,这意味着每当我从Java程序向txt文件添加任何内容时,它都会自动位于新行上,我不需要添加任何println间距来输入新行。现在又出现了另一个问题,在Java将新文本放入txt文件后,它将键入光标保留在添加的新行的末尾,而不是它下面没有数据的新行。这意味着,如果我尝试添加两次新信息,它将出现在同一行,而不是新的。为了解决这个问题,我简单地添加了一个

pw.println();

语句,以确保它将光标放在新行上。但是现在,当我在添加最后一行代码后第一次尝试添加数据时,它会在最后一行数据和我添加的新数据行之间创建一个空白。就像这样:

enter image description here 现在,每当用户想要搜索数据库时,因为我的搜索中有空检查,每当程序遇到我的原始数据和添加的新数据之间的空行时,它都不会继续搜索,因此,用户添加到数据库中的任何信息都将变得无用,Java将无法搜索这些信息,因为分隔这些信息的是空行

基本上,要么我保持原样。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文件,把光标放在我想放的地方,但没用


共 (0) 个答案