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

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

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

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

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


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