我有一个包含由换行符分隔的单词的文本文件,如下所示:
>hello
>world
>example
如何创建ArrayList并将每个单词存储为元素?
答案 0 :(得分:3)
最简单的方式是使用Guava:
File file = new File("foo.txt");
List<String> words = Files.readLines(file, Charsets.UTF_8);
(不保证是ArrayList
,但我希望无关紧要。)
答案 1 :(得分:3)
您可以使用apache commons FileUtils.readLines()
。
我认为它返回的List
已经是ArrayList
,但您可以使用构造函数ArrayList(Collection)
来确保获得一个。{/ p >
答案 2 :(得分:3)
public static void main(String [] args)抛出IOException { // TODO自动生成的方法存根
File file = new File("names.txt");
ArrayList<String> names = new ArrayList<String>();
Scanner in = new Scanner(file);
while (in.hasNextLine()){
names.add(in.nextLine());
}
Collections.sort(names);
for(int i=0; i<names.size(); ++i){
System.out.println(names.get(i));
}
答案 3 :(得分:0)
您逐行读取文件,为字符串创建一个ArrayList,如果line.length&gt; 0,则将line.substring(1)添加到定义的ArrayList。
答案 4 :(得分:0)
我把文件放在“C:\ file.txt”;如果你运行以下内容,它将使用单词填充一个ArrayList并打印它们。
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) throws Exception {
File file = new File("C:\\file.txt");
BufferedReader br = new BufferedReader(new FileReader(file));
List<String> lines = new ArrayList<String>();
String line = br.readLine();
while(line != null) {
lines.add(line.replace(">", ""));
line = br.readLine();
}
for(String l : lines) {
System.out.println(l);
}
}
}
答案 5 :(得分:0)
我确信他们有很多库用1行来做这个,但这里是一个“纯粹的”Java实现:
请注意,我们已经“包装”/“装饰”等标准FileReader(一次只读取一个字节)和BufferedReader,它为我们提供了更好的readLine()方法。
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(
new FileInputStream("test.txt"),
Charset.forName("ISO-8859-1")));
List<String> lines = new ArrayList<String>();
String line;
while ((line = reader.readLine()) != null) {
lines.add(line);
}
System.out.println(lines);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
reader.close();
}
}