如何在文件中搜索名称并提取值

时间:2017-01-10 14:01:00

标签: java

我有一个看起来像这样的文件:

Dwarf remains:0
Toolkit:1
Cannonball:2
Nulodion's notes:3
Ammo mould:4
Instruction manual:5
Cannon base:6
Cannon base noted:7
Cannon stand:8
Cannon stand noted:9
Cannon barrels:10
... 

打开此文件,搜索名称并返回字段值的最简单方法是什么?我不能使用任何外部库。

我尝试了什么/这样可以吗?

    public String item(String name) throws IOException{
    String line;
    FileReader in = new FileReader("C:/test.txt");
    BufferedReader br = new BufferedReader(in);


    while ((line = br.readLine()) != null) {
        if(line.contains(name)){
            String[] parts = line.split(":");
            return parts[1];
        }
    }

    return null;



}

2 个答案:

答案 0 :(得分:0)

使用基本Java功能可以轻松实现该任务。首先,您需要打开文件并阅读其行。使用Files.lines (Path.get ("path/to/file"))可以轻松实现。其次,您需要遍历这些指令返回的所有行。如果您不知道流API,则可以使用Files.lines (...)StreamString[] lines = Files.lines(Paths.get("path/to/file")).toArray(a -> new String[a]);返回的值更改为数组。现在lines变量包含输入文件中的所有行。

然后,您必须将每一行分成两部分(String.split),并查看第一部分是否等于(String.equals)您要查找的内容。然后简单地返回第二个。

答案 1 :(得分:0)

作为您的代码的后续 - 它编译并正常工作。但请注意,/不是Windows上的正确路径分隔符(\是)。您可以使用,例如:Paths.get("C:", "test.txt").toString()创建正确的路径。在File.separator中也定义了正确的分隔符。