Java从txt文件中读取数字

时间:2016-02-16 15:07:03

标签: java string bufferedreader trim

假设我们有一个像这样的文本文件:

#this is a config file for John's server


MAX_CLIENT=100

  # changed by Mary


TCP_PORT = 9000

我写了以下代码:

 this.reader = new BufferedReader(new FileReader(filename));
    String line;

    line = reader.readLine();
    while (line.length() != 0) {

        line = line.trim();
        if (line.contains("#") || line.contains("")) {
            line = reader.readLine();

        } else {
            if (line.contains("MAX_CLIENT=")) {
                line = line.replace("MAX_CLIENT=", "");
                this.clientmax = Integer.parseInt(line);
            }

            if (line.contains("TCP_PORT=")) {

                line = line.replace("TCP_Port=", "");
                tcp_port = Integer.parseInt(line);
            }

        }
    }

其中clientmax和tcp_port的类型为int。

clientmax和tcp_port是否会收到此代码的值?

如果我将文本文件稍微更改为:

,我该怎么办?
MAX_CLIENT=100# changed by Mary

在号码后面包含评论。

ow,btw#代表评论的开始。

谢谢。

2 个答案:

答案 0 :(得分:1)

使用line.startsWith("#")代替line.contains("#")

执行此操作时,请记住,当您到达评论字符时,您需要停止阅读。

答案 1 :(得分:1)

您应该使用专为此目的而设计的课程:Properties

此课程为您处理评论,因此您无需担心这些评论。

你这样使用它:

Properties prop = new Properties();
prop.load(new FileInputStream(filename));

然后您可以使用以下方式从中提取属性:

tcpPort = Integer.parseInt(prop.getProperty("tcpPort"));

或使用以下方式保存:

prop.setProperty("tcpPort", String.valueOf(tcpPort));