Printwriter FileNotFoundException - PullRequest
       9

Printwriter FileNotFoundException

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

Я пытаюсь написать программу для отслеживания миль, которая отслеживает расстояние, которое пользователь проходит, бежит или плавает.Программа запрашивает ввод пользователем пройденного расстояния во время сеанса, сохраняет его в двойном размере, считывает данные из файла об общем количестве пройденного ранее расстояния, добавляет расстояние от последнего сеанса к прошлому итогу, чтобы создать новый итог,и записывает это общее количество в файл, где оно хранится для будущего использования.При написании кода среда IDE отображает ошибки на устройстве записи и сканирования, когда я пытаюсь указать их на файл:

Scanner reader = new Scanner(storage); //error at second Scanner
PrintWriter writer = new PrintWriter(storage); // error at second PrintWriter

ошибка читается как «FileNotFoundException»

при помещении вtry block, ошибка исчезает, и вместо этого программа печатает отчет об ошибке блока catch при запуске:

catch(FileNotFoundException e){
            System.out.println("Check that the text file is in the correct directory.");
            e.printStackTrace();
        }

Это первая программа, которую я написал с использованием PrintWriter, поэтому некоторые указатели и объяснение того, что ябыло бы полезно сделать неправильно.

Вот полный код:

import java.io.File;
import java.io.PrintWriter;
import java.io.FileInputStream;
import java.util.Scanner;
import java.io.IOException;
import java.io.FileNotFoundException;
import java.lang.String;

public class Main {

    public static void main(String[] args) {


        //gets interval data from user
        System.out.println("Please type the amount of miles walked.");
        Scanner input = new Scanner(System.in);
        double inMiles = input.nextDouble();


            //creates file and scanner that reads to file

            File storage = new File ("Mile Tracker//Mile.txt");
        try {
            storage.createNewFile();
        }
        catch(IOException e ){
            System.out.println("File not created.");
        }

        try {
            Scanner reader = new Scanner(storage);

            //takes data from file and sets it to a variable
            double Miles = reader.nextDouble();

            double TotalMiles = Miles + inMiles;

            //PrintWriter reader = new PrintWriter( file );


            //PrintWriter that clears the file
            /*PrintWriter clearwriter = new PrintWriter(storage);
            clearwriter.print("");

            clearwriter.close();
*/
            PrintWriter writer = new PrintWriter(storage);
            writer.print(TotalMiles);

            writer.close();
        }
        catch(FileNotFoundException e){
            System.out.println("Check that the text file is in the       correct directory.");
             e.printStackTrace();
        }

     }
}

1 Ответ

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

Если у вас уже есть каталог с именем «Mile Tracker», проверьте, находится ли он в том же пути к классу java, поскольку вы явно не указываете путь к конструктору File.Если у вас нет каталога «Mile Tracker», вы изменяете код следующим образом:

File storage = new File ("Mile Tracker//Mile.txt");
try {
    storage.getParentFile().mkdirs();
    storage.createNewFile();
}
catch(Exception e ){
    System.out.println("File not created.");
}

С этого момента должна быть устранена ошибка FileNotFound.

...