Convert to try-with-resources przy uruchamianiu programu

Odpowiedz Nowy wątek
2019-07-25 00:01
0

Jestem początkujący w Javie i nie wiem dlaczego ten kod nie działa?

package R04;

import java.util.Scanner; // Potrzebne, by móc używać klasy Scanner.
import java.io.*;          // Potrzebne, by móc używać klasy File i wyjątków IOException.

/**
   Ten program wczytuje dane z pliku.
*/

public class FileReadDemo
{
   public static void main(String[] args) throws IOException
   {
      // Tworzenie obiektu klasy Scanner do pobierania danych z klawiatury.
      Scanner keyboard = new Scanner(System.in);

      // Pobieranie nazwy pliku.
     System.out.print("Podaj nazwę pliku: ");
      String filename = keyboard.nextLine();

      // Otwieranie pliku.
      File file = new File(filename);
      Scanner inputFile = new Scanner(file);

      // Wczytywanie wierszy z pliku do momentu pobrania wszystkich danych.
      while (inputFile.hasNext())
      {
         // Wczytywanie następnego imienia.
       String friendName = inputFile.nextLine();

       // Wyświetlanie ostatniego wczytanego imienia.
       System.out.println(friendName);
     }

     // Zamykanie pliku.
      inputFile.close();
   }
}

Oto błąd

Podaj nazwę pliku: plik
Exception in thread "main" java.io.FileNotFoundException: plik (Nie ma takiego pliku ani katalogu)
    at java.base/java.io.FileInputStream.open0(Native Method)
    at java.base/java.io.FileInputStream.open(FileInputStream.java:213)
    at java.base/java.io.FileInputStream.<init>(FileInputStream.java:155)
    at java.base/java.util.Scanner.<init>(Scanner.java:639)
    at R04.FileReadDemo.main(FileReadDemo.java:24)
/home/user/.cache/netbeans/11.0/executor-snippets/run.xml:111: The following error occurred while executing this line:
/home/user/.cache/netbeans/11.0/executor-snippets/run.xml:68: Java returned: 1
BUILD FAILED (total time: 2 seconds)
edytowany 1x, ostatnio: rdza, 2019-07-25 00:01

Pozostało 580 znaków

2019-07-25 00:10

Komunikat jest jasny - nie ma podanego pliku w bieżącym katalogu, gdzie bieżący katalog to katalog gdzie został odpalony proces Javy. Żeby się dowiedzieć w jakim katalogu jest odpalany Twój program, możesz zrobić np.:

System.out.println(System.getProperty("user.dir"));

Możesz też wpisać absolutną ścieżkę do pliku.

Tylko, że ten plik na 100% jest w tym katalogu projektu. - rdza 2019-07-25 00:13
Katalog projektu nie musi się równać katalogowi gdzie jest odpalana Java - damianem 2019-07-25 00:14
Faktycznie działa, trzeba było dodać do głównego folderu NetBeansProject. Dzięki wielkie :) - rdza 2019-07-25 00:17

Pozostało 580 znaków

2019-07-25 15:32
V-2
0

Błąd z treści posta a błąd (ostrzeżenie?) zacytowane w nazwie tematu to dwie różne sprawy. try-with-resources (lub zamykaniem strumieni w finally) też bym się zainteresował.

BTW podoba mi się stosowany styl komentarzy ;)

import java.util.Scanner; // Potrzebne, by móc używać klasy Scanner.

Nie ma najmniejszego powodu, aby w CV pisać "email" przed swoim adresem mailowym, "imię i nazwisko" przed imieniem i nazwiskiem" ani "zdjęcie mojej głowy od przedniej strony" obok ewentualnego zdjęcia.
edytowany 2x, ostatnio: V-2, 2019-07-25 15:33

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0