#java #csv
#java #csv
Вопрос:
Я использую это
while ((nextLine = br.readNext()) != null) {
довольно часто, но я действительно этого не понимаю.
Это часть кода, в который загружается файл csv.
В принципе, я хотел бы знать, как ее прочитать.
Следующая строка определяется как: String[] nextLine;
Ответ №1:
Часть цикла проста:
while (____ != null) {
Он будет продолжать цикл, пока ____
не равен null
. Итак, давайте посмотрим, что ____
делает:
(nextLine = br.readNext())
Этот код является assignemnt: он вызывает br.readNext()
и присваивает результат nextLine
. Ключ в том, что результатом присваивания является значение, которое было присвоено.
Итак:
-
Если
br.readNext()
возвращает что-то, чего нетnull
, оно присваиваетсяnextLine
, и код переходит в тело цикла. -
Если
br.readNext()
возвращаетnull
, ему присваивается значениеnextLine
и цикл завершается, потомуnull != null
что равно false .
Ответ №2:
Строка
while ((nextLine = br.readNext()) != null) {
использует тот факт, что «присваивание» также является «выражением», которое имеет значение — присвоенное значение.
Итак, строка, считываемая изнутри круглых скобок, выполняет следующее:
- Вызывает
readNext()
объектbr
; - Присваивает результат вызова
nextLine
; - Проверяет значение, присвоенное для
null
; - Если это так
null
, оно переходит за телоwhile
цикла, к 7.; - Если это не
null
так, выполняется телоwhile
цикла; - Затем он возвращается к 1. снова.
- Это продолжает программу.