Не удается получить файл DataProcessor, чтобы найти файл, который находится буквально в той же папке, что и input.txt, который он должен принять. Не будет компилировать - PullRequest
0 голосов
/ 28 апреля 2019

Что ж, возможно, я немного затопил свой заголовок, но я не могу заставить свою java-программу найти input.txt, чтобы я мог что-то с этим сделать

Это для домашней работы, последние несколько часов я пытался получить код для распознавания input.txt. Я на всякий случай поставил "/input.txt" и прочее на всякий случай, оно все равно не сработало.

0

выход

import java.io.*;
import java.util.Scanner;

public class DataProcessor {
   public static void main(String args[]) throws FileNotFoundException {
      int[] answers = {0,0,0,0};

         File file=new File("input.txt");
         Scanner scan=new Scanner(file);
         while (scan.hasNextLine()) {
            String letter = scan.nextLine();
            if (letter.equals("a")) {
               answers[0] = answers[0]++;
            } else {
               if (letter.equals("b")) {
                  answers[1] = answers[1]++;
               } else {
                  if (letter.equals("c")) {
                     answers[2] = answers[2]++;
                  } else {
                     if (letter.equals("d")) {
                        answers[3] = answers[3]++;
                     }
                  }
               }
            }      
      }

      System.out.println(answers[0]);
   }
}

Я ожидаю, что он сможет прочитать файл, чтобы я мог запустить остальную часть кода, но ничего из этого не работает. Что я здесь не так делаю? Это было так расстраивает. Что должно произойти, я создаю файл output.txt, но не могу добраться до этой части, пока не перестану генерировать ошибки и не читать входные данные

Больше не выдает ошибок, но все еще не читает файл или что-то в этом роде?

1 Ответ

0 голосов
/ 28 апреля 2019

File объекты не имеют hasNextLine или nextLine метода.

Также вы можете узнать о else if () операторах и о том, что == никогда не следует использовать для сравнения строк.

 Scanner scan=new Scanner(file);

 while (scan.hasNextLine()) {
     String line = scan.nextLine();

     if (line.equals("a")) {
        answers[0] = answers[0]++;
     } else if (line.equals("b")) {
        answers[1] = answers[1]++;
     } else if (...) {
        // ...
     }      
  }

Предложение: Использование в IDE, например, Eclipse или IntelliJ, покажет ваши ошибки, прежде чем вы попытаетесь скомпилировать.

А объекты Scanner, как правило, не предпочтительнее BufferedReader - https://stackoverflow.com/a/5868528/2308683

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...