我希望我应该使用文件输入流从文本文件中读取一些文本,然后使用set或get方法存储此数据。现在使用arraylist对此数据进行排序......
类SongDetail将用于设置歌曲,movieName和艺术家的值.... 有一个文本文件“text1.txt”谁有商店歌曲/ movieName /艺术家详细信息... 现在我想要当我在Class1中读取这个文件时,被重新翻译的字符串将被分成歌曲,movieName,艺术家,并且这是在songDetail类中设置的。
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.*;
public class Class1 {
public static void main(String[] args) {
//ArrayList <String>list = new ArrayList<String>();
ArrayList <String>list = new ArrayList<String>();
try
{
FileInputStream in = new FileInputStream("text1.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
while((strLine = br.readLine())!= null)
{
// System.out.println(strLine);
list.add(strLine);
//System.out.print(list);
}
System.out.print(list);
Collections.sort(list);
}catch(Exception e){
System.out.println(e);
}
}
}
class SongDetail
{
private String song;
private String movieName;
private String artist;
public SongDetail
{
}
public void setSong(String song) throws InvalidSongException
{
this.song=song;
{
throw new InvalidSongException();
} }
public void setMovieName(String movieName)
{
this.movieName=movieName;
}
public void setArtist(String artist) throws InvalidArtistException
{
this.artist=artist;
{
throw new InvalidMarkException();
}
}
public String getSong()
{
return song;
}
public String getMovieName()
{
return movieName;
}
public String getArtist()
{
return artist;
}
}
答案 0 :(得分:0)
你的问题究竟是什么?代码工作正常,但你应该在while循环之后关闭你的BufferedReader:
br.close();
您的列表不会按字母顺序打印,因为您在排序之前将其打印出来。更改以下两行应解决您的问题:
Collections.sort(list);
System.out.print(list);
答案 1 :(得分:0)
您正在排序前打印
添加System.out.print(list);在try块的最后一行