我試圖從.rtf文件打印,但好像我的if語句已損壞。它看起來像分裂不起作用因爲如果我把打印狀態輸出只是作爲第一個打印行,它告訴用戶他們正在搜索哪首歌曲,然後歌曲歌詞是未格式化。除此之外,代碼只是循環while循環。看起來,它沒有找到歌曲,當它擊中if(line.contains(song)){
。現在,我只是對文件的位置進行硬編碼,但是當我使用該文件時,我將使該方法使用用戶輸入。bufferedReader未打印文件
任何幫助,將不勝感激。
public static void main(String[] args){
lyricsSearch("/Users/adam/Documents/Final/BlackDahliaMurder/", "miasma.rtf");
}
public static void lyricsSearch(String artist, String song){
try {
String stringSearch = song;
// Opens the album file as a buffered reader
BufferedReader bf = new
BufferedReader(new FileReader("/Users/adam/Documents/Final/BlackDahliaMurder/miasma.rtf"));
// Let the user know what we are searching for
System.out.println("Searching for " + song + "...");
// Loop through each line, parsing.
String line;
while ((line = bf.readLine()) != null){
System.out.println(line);
if (line.contains(song)){
String[] songInfo = line.split("\\|");
System.out.println(Arrays.toString(songInfo));
}
}
bf.close();
}
catch (IOException e) {
System.out.println("IO Error Occurred: " + e.toString());
}
}
當您在純文本.txt文件而不是.rtf文件上使用它時,該代碼是否工作? – denisw
它的效果更好,反斜槓消失了,但如果我保留上面的代碼,整個文件就會被打印出來而不是停在|處。如果我將其更改爲if(line.toLowerCase()。contains(song)),則它只打印文件的一行,其上帶有歌曲名稱。該文件是這樣組織的「|歌名:歌詞| |其他歌名:歌詞|」。 – Adam