-Java-我有一个文本文件,其中每行上存储ID号,名和姓。我正在使用BufferedReader逐行显示文本文件。但是,我只需要从每行中获取ID号并将其存储到数组中即可。如果有人可以帮助,将不胜感激。
答案 0 :(得分:0)
正如您所说,您已经在打印从文件中读取的行,接下来,您只需要使用文件中的分隔符来分隔行。假设您使用逗号作为分隔符,那么您要做的就是用逗号分隔行并访问第一个元素并将其存储在List
中,
这是示例代码,
public static void main(String[] args) throws Exception {
try(BufferedReader br = new BufferedReader(new FileReader("filename.txt"))) {
String line = null;
List<String> idList = new ArrayList<String>();
while((line = br.readLine()) != null) {
System.out.println(line); // you already printing it
String[] tokens = line.split("\\s*,\\s*"); // assuming your line is like this --> 123, Pushpesh, Rajwanshi
if (tokens.length > 0) {
idList.add(tokens[0]); // ID will be accessed at zero index
}
}
idList.forEach(System.out::println);
}
}
使用Java8及更高版本,您可以在一个内衬中完成它。
List<String> idList = Files.lines(Paths.get("filename.txt")).filter(x -> x.trim().length() > 0)
.map(x -> x.split("\\s*,\\s*")).map(x -> x[0]).collect(Collectors.toList());
idList.forEach(System.out::println);
答案 1 :(得分:0)
List<String> idList = Files.readAllLines(
Paths.get(FILE_PATH),
Charset.defaultCharset()
).stream()
.map(line -> line.split(SEPARATOR)[DATA_INDEX])
.collect(Collectors.toList());
FILE_PATH =文件位置(“ c:// users // ..”)。
SEPARATOR =分隔数据(1:NAME:LAST_NAME <此ex的分隔符=“:”)。
DATA_INDEX =数据索引(1:NAME:LAST_NAME <此ex的ID索引= 0)。