Java:如何读取文本文件的每一行并将每一行设置为数组元素?
我试图阅读文本文件每一行中列出的问题,然后将每一行添加到数组中,以便以后可以单独调用它们。我几乎肯定用Java可以做到这一点,但我不确定如何做到这一点 我确实知道如何读取整个文本文件并将其全部设置为字符串:Java:如何读取文本文件的每一行并将每一行设置为数组元素?,java,arrays,file,bufferedreader,filereader,Java,Arrays,File,Bufferedreader,Filereader,我试图阅读文本文件每一行中列出的问题,然后将每一行添加到数组中,以便以后可以单独调用它们。我几乎肯定用Java可以做到这一点,但我不确定如何做到这一点 我确实知道如何读取整个文本文件并将其全部设置为字符串: private static String readFile(String pathname) { String line = null; try { BufferedReader reader = new BufferedReader(new Fil
private static String readFile(String pathname) {
String line = null;
try {
BufferedReader reader = new BufferedReader(new FileReader(pathname));
while((line = reader.readLine()) != null){
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
}
return line;
}
虽然它与此没有多大关系,正如我提到的,这是一个包含问题的文件。如果我得到了这个问题的解决方案,我会有另一个文件来记录所有问题的答案,然后我会对这个文件做同样的事情
有人知道一种不太复杂的方法吗?如果一定很复杂,那就告诉我。我想一些类型的例子,而不仅仅是链接到不同的网站。我并不是说我只接受这个
谢谢你抽出时间
另外,我已经阅读了关于这个主题的其他问题,但是没有找到一个合适的答案和/或例子来说明我在Java中所做的工作。使用
ArrayList
,它是动态的,可以找到具体的代码
private static String readFile(String pathname) {
List<String> lines = new ArrayList<String> ();
String line = null;
try {
BufferedReader reader = new BufferedReader(new FileReader(pathname));
while((line = reader.readLine()) != null){
lines.add(line) ;
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
}
private static List<String> readFile(String pathname) {
String line = null;
List<String> list = new ArrayList<String>();
try {
BufferedReader reader = new BufferedReader(new FileReader(pathname));
while((line = reader.readLine()) != null){
list.add(line);
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
私有静态列表读取文件(字符串路径名){
字符串行=null;
列表=新的ArrayList();
试一试{
BufferedReader reader=新的BufferedReader(新文件读取器(路径名));
而((line=reader.readLine())!=null){
列表。添加(行);
}
}捕获(例外e){
e、 printStackTrace();
}
退货清单;
}
对于第二个文件,您应该维护一个
map
意味着一个map
我将使用一个ArrayList。。。就像这样
ArrayList<String> questions = new ArrayList<String>();
/// in your loop...
while((line = reader.readLine()) != null){
questions.add(line);
}
ArrayList questions=new ArrayList();
///在你的循环中。。。
而((line=reader.readLine())!=null){
问题。添加(行);
}
顺便说一句,正如jlordo在注释中指出的那样,按照您构建方法的方式,跳出循环的唯一方法是让行为null,因此,当您到达return语句时,您将返回null。你到底想回到这里干什么?如果是整个文件中的行,则需要在运行时将它们添加到字符串中。难道不能创建一个字符串数组列表,并使用readLine()将读取的每一行添加到其中吗?然后可以将arraylist转换为普通数组
listArray.toArray(strArray);
使用番石榴:
单行代码:
System.out.println(Files.readLines(new File("C:\\sample.txt"), Charsets.UTF_8));
这在java 8中非常简单和简洁:
List<String> fileLines = Files.lines(Paths.get("/file/path/")).collect(Collectors.toList());
List fileLines=Files.lines(path.get(“/file/path/”)).collect(Collectors.toList());
是否有任何情况需要将问题和答案链接起来我确实知道如何读取整个文本文件并将其全部设置为字符串:
否,当您返回字符串时,您的字符串将为null
。
List<String> fileLines = Files.lines(Paths.get("/file/path/")).collect(Collectors.toList());