Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Не работает: try-with-resources / 8 сообщений из 8, страница 1 из 1
12.08.2021, 18:58
    #40090396
Pcrepair
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает: try-with-resources
Добрый день.

Есть код для чтения файла

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
// обертка для вызова методов класса

import java.util.List;
import java.io.IOException;

public class MainApp {
	public static void main(String[] args) throws IOException {
		List<String> lines = LoadTextFromFile.readStrFromFile(args[0]);

		for (String line : lines) {
			System.out.println(line);
		}

	}
}





Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
// Class LoadTextFromFile.readStrFromFile загрузка текстового файла в виде строк(оригинал структуры текста)
// Files.readAllLines java7
// can't use try-with-resourse

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
import java.util.List;
import java.util.ArrayList;
import java.nio.file.Paths;
import java.nio.file.Files;

public class LoadTextFromFile {

	public static List<String> readStrFromFile(String pathToFile) {
		List<String> lines = new ArrayList<String>();

		try {
			lines = Files.readAllLines(Paths.get(pathToFile), StandardCharsets.UTF_8);
			return lines;

		} catch (IOException exc) {
			System.out.println(exc);
			// call errorlog.txt(time+exc+package.LoadTextFromFile+pathToFile)
		}

		return lines;

	} 

}



Выше стандартный код try-catch (что делать в finelly, как закрыть(close) Files.readAllLines то же непонятно) в стиле Java 1.8 (java.nio.file.Files)
все работает как предначертано.

если написать в стиле try-with-resources

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
        public static List<String> readStrFromFile(String pathToFile) {
			List<String> lines = new ArrayList<String>();

			try (lines = Files.readAllLines(Paths.get(pathToFile), StandardCharsets.UTF_8)) {
				return lines;

			} catch (IOException exc) {
				System.out.println(exc);
				// call errorlog.txt(time+exc+package.LoadTextFromFile+pathToFile)
			}

			return lines;

		}



------------------------------------
компилятор пишет:

$ javac -encoding UTF-8 -cp .; MainApp.java
.\LoadTextFromFile.java:19: error: <identifier> expected
try (lines = Files.readAllLines(Paths.get(pathToFile), StandardCharsets.UTF_8)) {
^
.\LoadTextFromFile.java:19: error: cannot find symbol
try (lines = Files.readAllLines(Paths.get(pathToFile), StandardCharsets.UTF_8)) {
^
symbol: class lines
location: class LoadTextFromFile
2 errors
------------------------------------

Вопросы:
1. что писать в первой редакции метода в секции finelly? на жабадокс в разделе ничего об этом нет
2. что не так в версии try-with-resources, понятно что там видимость lines отсутствует, но что дальше, если ввести создание lines в try () там то же будет ошибка но другая

Заранее спасибо за ответы по ЗАДАННЫМ вопросам
...
Рейтинг: 0 / 0
12.08.2021, 19:18
    #40090398
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает: try-with-resources
Pcrepair,
Почему не взять пример работы try-with-resources с чтением файла из сети или книжки и не выполнить его?
Спасибо за ответы по ЗАДАННОМУ вопросу.
...
Рейтинг: 0 / 0
12.08.2021, 19:23
    #40090400
Не работает: try-with-resources
Pcrepair , try-wih-resources используется для закрытия классов реализующих интерфейс Autocloseable. Это такие классы как OutputStream, Connection, etc. Твой же Files.readAllLines() возвращает коллекцию строк, а не InputStream как ты видимо предполагаешь. Значит этот readAllLines() открывает и после прочтения файла сразу же сам закрывает OutputStream.
...
Рейтинг: 0 / 0
12.08.2021, 19:26
    #40090401
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает: try-with-resources
Stanislav Bashkyrtsev,
+1 разжевал и в рот положил.
...
Рейтинг: 0 / 0
21.08.2021, 18:44
    #40092425
O_79_O
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает: try-with-resources
PetroNotC Sharp
Stanislav Bashkyrtsev,
+1 разжевал и в рот положил.

норм ты так примазался к ответу,которого не знал))
Петро давай начинай изучать джаву и хибернейт,а пока стань read-only ,тебя на этом форуме уже даже олды попустили- так ты всех достал своим пустым спамом,который просто вносит хаос во все топики и не несет никакой смысловой нагрузки,так еще и поисковики не видят изза твоего спама эти темы.
Ветка джавы деградировала и 90% это именно твоя вина.Давай заканчивая вот это все - и отвечай по теме или не отвечай вовсе ,если нет ответа на поставленный вопрос.
...
Рейтинг: 0 / 0
21.08.2021, 19:08
    #40092427
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает: try-with-resources
O_79_O
норм ты так примазался к ответу,которого не знал))
ну а ты г.... на вентилятор кинул. как без этого...
без году неделя , а г.. кидать умеешь
...
Рейтинг: 0 / 0
21.08.2021, 19:26
    #40092430
O_79_O
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает: try-with-resources
вадя
O_79_O
норм ты так примазался к ответу,которого не знал))
ну а ты г.... на вентилятор кинул. как без этого...
без году неделя , а г.. кидать умеешь

вадян я по факту кинул) петро - с ним все понятно- там просто профан ,по тсу - сразу увольнение - ибо не знает java core
...
Рейтинг: 0 / 0
21.08.2021, 21:49
    #40092442
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает: try-with-resources
O_79_O,
Ты все мои ответы искал по сети.
Молодец, чо)
Только о жене своей, детях не забывай.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Не работает: try-with-resources / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]