Importowanie dodatkowych rzeczy, ciagłe błedy, róznice z tym co piszą w ksiażce

0

Witam, mam pewien problem. Zacząłem przerabiać książkę Javy i doszedłem do rozdziało o wczytywaniu i zapisywaniu plików. Jest tam napisane ze aby wczytać plik trzeba posłużyć się tym fragm kodu:

Scanner in = new Scanner(Paths.get("D:\\ala.txt"));

No i pojawia się pierwszy problem. W książce nie pisze nic o dodatkowych import jakieś biblioteki , eclipse wywala mi błąd (eclipse każde mi dodać linijkę

import java.nio.file.Paths;

Jak to zrobię to wyskakuje mi taki błąd:

Unhandled exception type IOException
więc IDE wyświetla mi że mam dodać throws IOException, a do tego potrzeba również dodatkowej biblioteki ( w książce jest wyjaśnione że trzeba dodać

throws FileNotFoundException

jak to dodam, zamiast IOException to błąd który wcześniej wyskakiwał wyskakuje dalej.

Książka to : http://helion.pl/ksiazki/java-podstawy-wydanie-ix-cay-s-horstmann-gary-cornell,javpd9.htm

No i teraz się zastanawiam, co jest nie tak? Czy to z Eclipse, czy ja źle coś robię, czy po prostu książka jest za stara :D

dodanie znaczników <code class="java"> i <code> - furious programming

0

Dałem Ci odp w poprzednim wątku zanim poleciał do kosza - importuj wszystko to eclipse się odczepi, ale eclipse ma racje.

Co do książki: nie jest za stara. Jest po prostu dziwnie napisana. Przejdź dalej w książce pewnie za 20 stron będziesz miał wyjaśnienie o co biegało z importami ;)

0

ja zamiast czytać książki wpisuję w google "java 8 file save" albo "java 7 read file" coś tego rodzaju i mam od razu różne nowoczesne ciekawe konstrukcje:

import java.io.IOException;
import java.io.PrintWriter;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;

class Main {
	public static void main(String[] args) {
		List<String> words = Arrays.asList("jeden","dwa","trzy");

		try(PrintWriter out = new PrintWriter("test.txt")) {
			words.forEach(w -> out.println(w));
		} catch (IOException io) {
			io.printStackTrace();
		}

		try(Stream<String> lines = Files.lines(Paths.get("test.txt"))) {
			lines.forEach(l -> System.out.println(l));
		} catch (Exception ex) {
			ex.printStackTrace();
		}

	}
}

jest znacznie szybciej

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