【发布时间】:2015-02-19 20:03:23
【问题描述】:
我正在尝试从多个文本文件(比如歌曲)中检索数据并将它们记录到一个数组中。问题是,所有数组值都有 LAST FILE 的值。这是部分代码
public static Song[] retrieve(String path, String type, String g, int no)
{
Song[] song;
song = new Song[no];
Scanner s;
String lrc = "";
for(int i=0;i<no;i++)
{
try
{
s = new Scanner(new FileInputStream(path+"\\"+type+"\\"+g+"\\"+(i+1)+".txt"));
song[i].artist = s.nextLine();
song[i].title = s.nextLine();
song[i].genre = "ARB";
while(s.hasNext())
lrc = lrc + " " + s.next();
song[i].lyrics = lrc.split(" ");
lrc = "";
s.close();
/*System.out.println(song[i].artist);
System.out.println(song[i].title);
System.out.println(song[i].genre);
for(int j = 0; j < song[i].lyrics.length; j++)
System.out.print(song[i].lyrics[j]+" ");
System.out.println("")*/
} catch(FileNotFoundException e)
{
System.out.println("File not found");
}
}
return song;
}
【问题讨论】:
-
这里您仅从单个文件中获取输入,因此您将仅从单个文件中获取它。
-
请把你调用这个函数的行也贴出来
-
是否使用您已注释掉的 println 语句在 for 循环中正确打印信息?
-
歌曲[]歌曲; //song = 新歌[20]; song = retrieve("D:\\workspace\\464\\src\\pkg464\\Songs","Train","ARB",20);
-
是的,它正确输出每个数组点中最后一个文件的数据
标签: java arrays io inputstream