У меня есть незначительная проблема с моим условием IF. Этот метод считывает пользовательский ввод и сканирует текстовый файл для введенного текста. Это работает. Я хочу выполнить мой метод Writer, если вход не найден. И там, где моя проблема. Кажется, я не могу вернуть найденную строку и выйти из программы. Вместо этого я возвращаю найденную строку, а затем вызываю метод записи, который я не хочу делать.Выполнение с инструкциями If
public static void parseFile(String s) throws FileNotFoundException {
File file = new File("data.txt");
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
final String lineFromFile = scanner.nextLine();
if (lineFromFile.contains(s)) {
// a match!
System.out.println(lineFromFile);
}
else{
Writer();
}
}
}
И вот мой метод писателя.
public static void Writer() {
Scanner Keyboard = new Scanner(System.in);
Scanner input = new Scanner(System.in);
File file = new File("data.txt");
try (BufferedWriter wr = new BufferedWriter(new FileWriter(
file.getAbsoluteFile(), true))) { // Creates a writer object
// called wr
// file.getabsolutefile
// takes the filename and
// keeps on storing the old
System.out
.println("I cannot find this line... Enter new line"); // data
while ((Keyboard.hasNext())) {
String lines = Keyboard.nextLine();
System.out.print(" is this correct ? ");
String go = input.nextLine();
if (go.equals("no")) {
System.out.println("enter line again");
lines = Keyboard.nextLine();
System.out.print(" is this correct ? ");
go = input.nextLine();
}
if (go.equals("yes")) {
wr.write(lines);
wr.write("\n");
wr.newLine();
wr.close();
}
System.out.println("Thankk you");
break;
}
} catch (IOException e) {
System.out.println(" cannot write to file " + file.toString());
}
}
, пожалуйста, исправьте свое описание, вы пишете найденную строку как для if, так и для других, я предполагаю, что один из них не должен быть найден –
Я предлагаю сделать некоторые println с s и linefrom файлом. Можете ли вы показать нам вывод s и linefromfile в первом случае if – user43968
Почему вы снова читаете ввод с клавиатуры в функции Writer? –