创建运行预定义代码块的快捷方式/宏?

时间:2019-02-01 07:13:13

标签: java

很抱歉,以前是否曾问过这个问题,但是我是编码的新手,我无法在线找到答案,因为我对理论的了解不深,无法知道如何描述我要寻找的东西。

基本上,我想知道是否有一种方法可以初始化可以绑定到此长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");

2 个答案:

答案 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文档的链接。