Мой вопрос связан с тем, как readLine() влияет на текущую позицию в файле.BufferedReader readLine() и перемещение файлов
Скажем, у меня есть файл, который имеет в нем следующее:
, если я скажу
r.readLine()
, то он вернет "1"
Если я другое
r.readLine()
Он вернет 'null', поскольку есть только одна строка.
Так что - если я проверить линию в заявлении в то время как так:
while (r.readLine!=null){
//Do something here
}
Так это должно работать, пока он не достигнет нулевой линии, то выход.
Однако, если я хочу сделать что-то вроде:
String line;
if ((line = r.readLine()).equals("1"))
//Then do something....
else if ((line = r.readLine()).equals("2"))
//Then do something else
Что происходит, что, очевидно, к тому времени я получаю на 2-й проверку, позиция чтения перешла к следующей строке.
Я пытался сделать что-то вроде этого:
String line = r.readLine();
if (line=='1')
//do Something
else if (line=="2")
//do something else.
... Тем не менее, с этим я получаю некоторые очень странные результаты. Если вы можете подтвердить командой System.out.println, что строка «строка» равна, скажем, 1 (или любое другое значение). но когда я пытаюсь использовать его в выражении if, условие никогда не срабатывает ....
Любая помощь здесь будет оценена.
В первом фрагменте кода, вы сравниваете ваши строки, правильно используя 'equals', почему вы изменили его' '== в 2 фрагмент кода? –
Возможный дубликат [Как сравнить строки в Java?] (Http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) –
@RohitJain, может быть, но когда я задал вопрос, я не знал, что правильно не сравниваю строки, поэтому я не спросил «как сравнить строки» - если вы понимаете, что я имею в виду! – Zippy