将信息添加到 txt 文件 - 游标问题
Adding information to a txt file - Issue with cursor
所以我正在尝试将文本添加到 txt 文件中,我已经成功地做到了这一点,系统会提示用户他们想要添加的内容,并且当我在 [=40] 之后打开 txt 文件时会包含这些内容=] 我的程序。
现在,这是我的问题:我第一次尝试向 txt 文件添加内容时,它创建了一个空白行,并且在该空白行下将包含用户添加的信息,这是因为当 Java打开我的文件,打字光标在最后一行的底部,没有space的地方,准备输入信息,像这样:
好吧,这意味着每当我从我的 Java 程序向 txt 文件添加任何内容时,它会自动换行,我不需要添加任何 println 间距来输入新队。现在这里出现了另一个问题,在 Java 将新文本放入 txt 文件后,它将键入光标留在添加的新行的末尾,而不是在它下面没有数据的新行。所以这意味着如果我尝试两次添加新信息,它将出现在同一行而不是新的。所以为了解决这个问题,我只是添加了一个
pw.println();
我的印刷机开头的声明,以确保它将光标放在新行上。但是现在,当我在添加最后一行代码后再次尝试添加数据时,它会在最后一行数据和我添加的新数据行之间创建一个空 space 。像这样:
现在,每当用户想要搜索数据库时,因为我在搜索中进行了空检查,每当程序遇到我的原始数据和已添加的新数据之间的空行时,它就不会继续搜索,因此用户添加到数据库中的任何信息都变得毫无用处,并且 Java 将无法搜索它,因为它被空行分隔。
基本上,要么我保留 pw.println() 并显示我的所有数据,但在原始数据之间有一个 space,因此无法搜索它,或者我可以删除它然后添加的所有新数据都出现在同一行,这不是我想要的。
这是将数据添加到 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 文件并将光标放在我想要的位置不起作用。
想法是在 end 处执行 println()(添加行尾)以写入任何应该在行上的内容。如果你在任何其他数据之前打印ln(),它很可能会创建一个空行(除非最后一行没有行尾)。
String filename="Elements.txt";
PrintWriter pw = new PrintWriter(new FileWriter(filename,true));
String element= ... ;
pw.write(element + ",");
// ... more ...
String valence=...;
pw.write(valence);
pw.println();
pw.close();
所以我正在尝试将文本添加到 txt 文件中,我已经成功地做到了这一点,系统会提示用户他们想要添加的内容,并且当我在 [=40] 之后打开 txt 文件时会包含这些内容=] 我的程序。
现在,这是我的问题:我第一次尝试向 txt 文件添加内容时,它创建了一个空白行,并且在该空白行下将包含用户添加的信息,这是因为当 Java打开我的文件,打字光标在最后一行的底部,没有space的地方,准备输入信息,像这样:
好吧,这意味着每当我从我的 Java 程序向 txt 文件添加任何内容时,它会自动换行,我不需要添加任何 println 间距来输入新队。现在这里出现了另一个问题,在 Java 将新文本放入 txt 文件后,它将键入光标留在添加的新行的末尾,而不是在它下面没有数据的新行。所以这意味着如果我尝试两次添加新信息,它将出现在同一行而不是新的。所以为了解决这个问题,我只是添加了一个
pw.println();
我的印刷机开头的声明,以确保它将光标放在新行上。但是现在,当我在添加最后一行代码后再次尝试添加数据时,它会在最后一行数据和我添加的新数据行之间创建一个空 space 。像这样:
基本上,要么我保留 pw.println() 并显示我的所有数据,但在原始数据之间有一个 space,因此无法搜索它,或者我可以删除它然后添加的所有新数据都出现在同一行,这不是我想要的。
这是将数据添加到 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 文件并将光标放在我想要的位置不起作用。
想法是在 end 处执行 println()(添加行尾)以写入任何应该在行上的内容。如果你在任何其他数据之前打印ln(),它很可能会创建一个空行(除非最后一行没有行尾)。
String filename="Elements.txt";
PrintWriter pw = new PrintWriter(new FileWriter(filename,true));
String element= ... ;
pw.write(element + ",");
// ... more ...
String valence=...;
pw.write(valence);
pw.println();
pw.close();