从txt文件java中读取特定行

时间:2014-04-19 15:08:13

标签: java string inputstream outputstream

我有一个问题!我有一个txt文件(在一个不移动的特定路径中),其中包含一个内容可变的字符串。我必须使用此字符串输入我的算法。 解决txt文件的一个例子是

50 [40,-13,-6,-7,-4] [28,-40,45,-29,37] [-43,19,-24,-9,-45] [26,-41,-28,-16,44]

4 [-3,-1,2] [-2,-4,1] [-3,2,1] [-2,3,-4] [4,2,1] [4,-1,2] [3,-4,1] [-3,-2,-4] 

我必须使用数字50或4或括号中的其他数字作为int。但是所有其他内容必须在特定字符串中提取,然后传递给方法。 谁有解决方案? 重要提示:文件内容是可变的

1 个答案:

答案 0 :(得分:0)

如果/Application/testdata/ntd.txt是您的txt文件的路径,那么下面的代码将起作用(我猜你的要求是什么)。

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

        String content=null;
        File folder = new File("/Application/testdata/ntd.txt");

              content = FileUtils.readFileToString(folder)+"\n";
              System.out.println(content);


        int outside=Integer.parseInt(content.substring(0, content.indexOf("[")).trim());
        System.out.println("int val: "outside);
        String remainingString=content.substring(content.indexOf("["), content.lastIndexOf("]")+1);
        System.out.println("String value: "remainingString);
    }

输出:

  50 [40,-13,-6,-7,-4] [28,-40,45,-29,37] [-43,19,-24,-9,-45] [26,-41,-28,-16,44]
  int val: 50
  String value: [40,-13,-6,-7,-4] [28,-40,45,-29,37] [-43,19,-24,-9,-45] [26,-41,-28,-16,44]

我使用apache commons进行文件读取。如果你想进一步打破remainingString,那么根据SPACE字符拆分它。