Arrays 在Java中追加时,读取文本文件的输出是重复行吗?
我制作了一个简单的文本框,当按下按钮时,它会从文本文件(逐行)加载文本。它将数字写入JTextArea,然后对数字应用一些方法,并将结果输出到JTextArea 我的问题是,当显示输出时,它会重复这些行-通过示例更容易显示 因此,如果文本文件读取: 1Arrays 在Java中追加时,读取文本文件的输出是重复行吗?,arrays,loading,filereader,repeat,Arrays,Loading,Filereader,Repeat,我制作了一个简单的文本框,当按下按钮时,它会从文本文件(逐行)加载文本。它将数字写入JTextArea,然后对数字应用一些方法,并将结果输出到JTextArea 我的问题是,当显示输出时,它会重复这些行-通过示例更容易显示 因此,如果文本文件读取: 1 二, 给出的输出为: 第一个文本区域: 1 二, 第二个文本区域: 结果来自1 结果来自1 结果from2 因此,数字显示得很好,但经过处理的数据却在重复。在这种情况下,它显示程序显示第一个结果,然后显示两个结果 加载按钮的代码为: privat
二, 给出的输出为: 第一个文本区域: 1
二, 第二个文本区域: 结果来自1
结果来自1
结果from2 因此,数字显示得很好,但经过处理的数据却在重复。在这种情况下,它显示程序显示第一个结果,然后显示两个结果 加载按钮的代码为:
private void loadPlaylistBtnActionPerformed(java.awt.event.ActionEvent evt) {
if (evt.getSource() == loadPlaylistBtn) {
try {
playlistTextArea.setText(null);
FileReader fileReader = new FileReader("playlist.txt");
BufferedReader bufferedReader = new BufferedReader(fileReader);
String inputFile = "";
String textFieldReadable = bufferedReader.readLine();
while (textFieldReadable != null) {
inputFile += textFieldReadable + "\n";
textFieldReadable = bufferedReader.readLine();
trackNum.setText(inputFile);
String[] loadPlaylist = trackNum.getText().split("\\n");
for (int i = 0; i < loadPlaylist.length; ++i) {
String songName = LibraryData.getName(loadPlaylist[i]);
String songArtist = LibraryData.getArtist(loadPlaylist[i]);
playlistTextArea.append(songName + " - " + songArtist + "\n");
}
}
fileReader.close();
} catch (Exception e) {
System.out.println("File not found.");
}
}
}
和艺术家:
public static String getArtist(String key) {
try {
stmt = con.createStatement();
ResultSet res = stmt.executeQuery("SELECT * FROM Library WHERE LibraryID = '" + key + "'");
if (res.next()) {
return res.getString(3);
} else {
return null;
}
} catch (Exception e) {
return null;
}
}
有没有办法让它只输出一首与数字有关的歌曲,而不是重复自己
抱歉,如果这真的不清楚-我对Java还是相当陌生的
谢谢:)假设PlayTextArea是您的问题测试框,问题似乎是:
playlistTextArea.append(songName + " - " + songArtist + "\n");
您一次读取一行文件,然后每次追加整个列表,这将导致模式1、1、2、1、2、3、1、2、3、4等。解决此问题的最简单方法是确保在for循环之前清除文本框(即移动到playtextarea.setText(null)下)。!非常感谢!
playlistTextArea.append(songName + " - " + songArtist + "\n");