将特定变量从文本文件输出到控制台Java

时间:2017-11-06 17:46:53

标签: java file file-io io text-files

我正在尝试将特定变量从文本文件输出到控制台。我可以通过键入文件名来读取整个文件并将其输出到控制台,但在尝试获取特定变量时总是会出现空错误异常。我尝试使用分隔符,但那些没有用。

这是文本文件" Input1.txt"

pace g {
    int x;
    int y;
    {
        rate x;
        rate z;
    }
}

我能够毫无问题地返回文本文件,但对如何获取

感到困惑
pace, int, int, rate, rate 

打印出来。分隔符是否是解决此问题的正确方法?

这是工作代码:

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
import java.io.File;

public class Main {

    public static void main(String[] args) throws IOException {

        // Initialize variables
        Scanner keyboard  = new Scanner(System.in);     // Create Scanner object
        // Prompting user for the text file
        System.out.print("Enter the source path to the text file: ");
        String fileName = keyboard.nextLine();
        File file = new File(fileName); // Create File object

        // Check if file exists
        if (file.exists()) {
            // Create a Scanner from the file
            Scanner insideFile = new Scanner(file);

            // For each line in the file, read on the line and display it with the line number
            int lineNumber = 0;

            while (insideFile.hasNext()) {
                String line = insideFile.nextLine();    // read the next line

                // Output the line read to the screen for the user
                System.out.println(++lineNumber + ": " + line);
            }
        // Done reading the file
        insideFile.close();
    }
  }
}

我知道如何格式化输出,但我对如何输出特定变量感到迷茫。除了分隔符,令牌是另一种方法来接近它吗?任何帮助,将不胜感激!

1 个答案:

答案 0 :(得分:2)

您可以创建解析器。但一个简单的解决方案是逐行读取文件并使用正则表达式来解析每个读取行。

http://www.vogella.com/tutorials/JavaRegularExpressions/article.html

如果您共享源文件的示例,我可以为您生成正则表达式解析器。