很抱歉,以前是否曾问过这个问题,但是我是编码的新手,我无法在线找到答案,因为我对理论的了解不深,无法知道如何描述我要寻找的东西。
基本上,我想知道是否有一种方法可以初始化可以绑定到此长try语句的变量/宏,因此不必每次都想读取文件时都写这个
System.out.println("filler");
System.out.println("filler");
try {
FileReader reader = new FileReader("MyFile.txt");
BufferedReader bufferedReader = new BufferedReader(reader);
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("filler");
System.out.println("filler");
我可以写类似..
System.out.println("filler");
System.out.println("filler");
Read1
System.out.println("filler");
System.out.println("filler");
答案 0 :(得分:1)
按照@king_nak的建议,使用一种方法。
public void readFile(String path) {
try {
FileReader reader = new FileReader(path);
BufferedReader bufferedReader = new BufferedReader(reader);
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
然后您可以做您想做的事
System.out.println("filler");
readFile("MyFile.txt") // call the method
System.out.println("filler");
答案 1 :(得分:0)
在Java中,MACROS相反地称为常量,并使用final
关键字进行初始化。
例如,具有 String常量:
final String str = "Hello World!";
这里您需要的是一种很好的老式Java方法。
您需要在您选择的类中的main方法之外声明它。以下方法所要做的是,它将读取文件并将文件的每一行添加到列表(更具体地说是ArrayList)。
ArrayList的每个元素都是一行文本,从文件中读取。
注意:此方法非常先进,因为它利用流来实现上述功能。如果您使用此功能,请先花一些时间来理解它!否则,我建议您不要将此用作初学者。 (您可以阅读Reading, Writing and Creating files的文档)。
public ArrayList<String> readLines (String filename){
ArrayList<String> lines = null;
// Get lines of text from file as a stream.
try (Stream<String> stream = Files.lines(Paths.get(filename))){
// convert stream to a List-type object
lines = (ArrayList<String>)stream.collect(Collectors.toList());
}
catch (IOException ioe){
System.out.println("Could not read lines of text from the file..");
ioe.printStackTrace();
}
return lines;
}
然后您可以使用如下方法:
ArrayList<String> lines = null; //Initialise an ArrayList to store lines of text.
System.out.println("filler");
lines = readLines("/path/myFile.txt");
System.out.println(lines.get(0)); //Print the first line of text from list
System.out.println("filler");
lines = readLines("/path/myOtherFile.txt");
for( String str : lines )
System.out.println(str); //Will print every line of text in list
这是java.nio.Files文档的链接。