Я узнал о BufferedReader, а также BufferedWriter, поэтому решил создать небольшой текстовый процессор для командной строки (что означает без интерфейса, только в cmd/terminal). Он запрашивает у пользователя имя документа (который затем создаст файл), а затем пользователь может ввести предложения. Каждый раз, когда пользователь нажимает кнопку «Ввод», текст вводится в файл, а новая строка создается, а затем позволяет пользователю вводить больше. В конце он отобразит сообщение о создании файла. СЕЙЧАС, я столкнулся с проблемой, когда пользователь не смог остановить процесс ввода данных и создания файла, потому что программа продолжала создавать новые строки, несмотря на то, что ничего не вводила или не вышла из ключевого слова (которое я указал в коде, чтобы выйти из . программа) Вот мой исходный код:Небольшая проблема ввода в программе в java
import java.io.*;
class TextProcessor
{
public static void main(String[] args)
{
try
{
System.out.println("Please enter name of the file");
BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); //User input
String file = in.readLine();
BufferedWriter writer = new BufferedWriter(new FileWriter(file)); //Creating file as well as instance for inputting text to the file.
System.out.println("Enter text");
String line = "";
do
{
line = ins.readLine();
System.out.println(line);
writer.write(line);
System.out.println("Second " + line);
writer.newLine();
}
while(line != "quit()");
//while(line != null);
in.close();
writer.close();
System.out.println("Text is created with entered text");
}
catch(IOException e)
{
System.out.println("Error occured");
}
}
}
Однако, я нашел решение этой проблемы, которое заменяющий делать-то время как блок с в то время как один:
int counter = 0;
while(counter != 1)
{
line = in.readLine();
writer.write(line);
if(line.equals("quit()"))
{
++counter;
}
else {writer.newLine();}
}
I имеем aq Теперь об этом можно сказать, почему я не могу использовать инструкцию do-while вместо этого, даже если логично, что программа будет работать? Спасибо за чтение этого!!!!
P.S. Я также задаюсь вопросом, могу ли я внести небольшие улучшения в этот или любой другой способ создания этого типа программы. Спасибо, если вы дадите отзыв!
Downvoted почему ?? – jlordo
Почему это было приостановлено? Я имею в виду, что это фактически решает проблему. +1 от меня, хотя. –
Thanx за +1, но я удивлен, что у меня 2 очка. Кроме того, это был конкретный вопрос, и я понятия не имел, что существует разница между equals() и ==. Плюс я тоже хотел найти обратную связь для этого кода! – pavelexpertov