Java:逐行读取文件
好的,我是一名java程序员新手,我正在尝试创建一些java代码来读取我创建的配置文件,并返回结果。我会先给你代码,然后解释我想做什么:Java:逐行读取文件,java,Java,好的,我是一名java程序员新手,我正在尝试创建一些java代码来读取我创建的配置文件,并返回结果。我会先给你代码,然后解释我想做什么: public static String read(String property, File file) throws IOException{ FileInputStream in = new FileInputStream(file); BufferedReader br = new BufferedReader(new InputSt
public static String read(String property, File file) throws IOException{
FileInputStream in = new FileInputStream(file);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line;
String r = "ERROR";
while ((line = br.readLine()) != null) {
if(!line.startsWith("//")){
String[] split = line.split(" ");
if(split[0] == property){
r = split[1];
}
}
}
br.close();
return r;
}
这是实际配置文件的外观,其中“hello”是属性,“world”是值:
hello world
为了进行解释,所需的属性以及配置文件的位置都作为参数。然后,它将读取每一行(忽略“/”),并将其拆分为属性名称和值。如果找到该属性,则返回该值;如果找不到该属性,则返回“ERROR”
然后运行以下代码:
System.out.println(Property.read("hello", new File("config/confix.txt")));
但是,每次运行此代码时,都会打印“ERROR”。我已经检查并重新检查了我的代码,但仍然想不出我做错了什么
抱歉,如果我没有说清楚,那么一定要问我是否需要更好地解释 字符串比较必须使用equals方法not运算符完成 替换这个
split[0] == property
用这个
split[0].equals(property)
尝试学习如何使用调试器,这将为您节省大量时间。您的代码看起来不错,请尝试单步执行调试器,以查看问题所在,即字符串比较应使用
equals
,而不是=
。谢谢!问题是我正在为服务器编程一个插件,我还没有找到如何调试它。应该总是有办法在本地测试您的代码,或者编写一个使用您的代码的main,或者编写单元测试