Java Сравнение двух строк все еще верноJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java Сравнение двух строк все еще верно

Сообщение Anonymous »

У меня возникла проблема при сравнении двух строк, имеющих значение NULL

Код: Выделить всё

public void run(){
System.out.println(properties.readConfig("port.cfg"));
String lport = "";
String lasd = "";
File fport = null;
File fasd = null;
try {
BufferedWriter writer = new BufferedWriter( new FileWriter("port.cfg"));//this (if file doesn't exist) will create it
BufferedWriter witer = new BufferedWriter( new FileWriter("asd.cfg"));//this (if file doesn't exist) will create it
writer.close();
witer.close();
BufferedReader reader = new BufferedReader( new FileReader("port.cfg"));
BufferedReader rader = new BufferedReader( new FileReader("asd.cfg"));
lport = reader.readLine();
lasd = rader.readLine();
reader.close();
rader.close();
fasd = new File("asd.cfg");
fport = new File("port.cfg");
commands.print(String.valueOf(StringUtils.equals(lasd, lport)));
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
temp = InetAddress.getLocalHost().toString().split("/");
settings.myIp = temp[1];
} catch (UnknownHostException e) {
e.printStackTrace();
}
if(StringUtils.equals(lasd, lport)){//here is the problem
properties.saveConfig("port.cfg", "8795");
settings.port = properties.readConfig("port.cfg");
commands.print("Current port is: " + settings.port);
}else{
settings.port = properties.readConfig("port.cfg");
}
}
Когда я запускаю программу в первый раз, проблемная часть выдает true и записывает в файл port.cfg порт и этот порт могут быть изменены пользователем (это хорошо), но когда я запускаю программу во второй раз, она снова выдает true и перезаписывает порт (и это плохо, потому что текст в файле port.cfg (String lport) не такой, как в файле asd.cfg (String) лад).

Код: Выделить всё

commands
и настройки — мои классы.

Код: Выделить всё

StrungUtils
класс взят из apache.common.lang
Изменить:
Я пробовал: lport == lasd, lport == null && lasd == null
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»