我有一个看起来像这样的文件:
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;
}
答案 0 :(得分:0)
使用基本Java功能可以轻松实现该任务。首先,您需要打开文件并阅读其行。使用Files.lines (Path.get ("path/to/file"))
可以轻松实现。其次,您需要遍历这些指令返回的所有行。如果您不知道流API,则可以使用Files.lines (...)
将Stream
从String[] 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
中也定义了正确的分隔符。