Страница 1 из 1
Открытие файлов.
Добавлено: 27 май 2016, 14:00
develprog
Не получается сделать так что бы "TXT" файл открывался и содержимое выводилось в JTextArea. Желательно помочь кодом.
Код:
Код: Выделить всё
mi1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent event) {
JFileChooser fileopen = new JFileChooser();
int ret = fileopen.showDialog(null, "Открыть файл");
if (ret == JFileChooser.APPROVE_OPTION) {
}
}
});
Re: Открытие файлов.
Добавлено: 27 май 2016, 14:23
AiK
Выполняешь в браузере?
Re: Открытие файлов.
Добавлено: 27 май 2016, 14:29
develprog
AiK писал(а):Выполняешь в браузере?
нет. NetBeans.
Re: Открытие файлов.
Добавлено: 27 май 2016, 15:25
AiK
А в чём загвоздка? Получить выбранный файл - метод getSelectedFile() у файлчузера, Прочитать файл в строку - штук 5 разных способов есть.
Re: Открытие файлов.
Добавлено: 27 май 2016, 15:36
develprog
AiK писал(а): метод getSelectedFile()
Уже нашел как открыть файл, только другим способом, осталось сделать правильную кодировку алфавита и вывод в JTextArea.
Вот код который открывает файл :
Код: Выделить всё
File f = fileopen.getSelectedFile();
try(FileReader reader = new FileReader(f))
{
char[] buffer = new char[(int)f.length()];
reader.read(buffer);
System.out.println(new String(buffer));
}
catch(IOException tx){
System.out.println(tx.getMessage());
}
}
Re: Открытие файлов.
Добавлено: 27 май 2016, 16:01
AiK
Попробуй
Код: Выделить всё
reader = new InputStreamReader(new FileInputStream(f), "UTF-8");
Re: Открытие файлов.
Добавлено: 27 май 2016, 16:47
develprog
AiK писал(а):
Код: Выделить всё
reader = new InputStreamReader(new FileInputStream(f), "UTF-8");
Не получилось. Поменял просто свойства проекта в NetBeans, кодировку с UTF-8 на windwos 1251, выводит все как надо, но сомнительно, что будет работать на других компьютерах без нужного кода.
Re: Открытие файлов.
Добавлено: 27 май 2016, 19:13
AiK
Смотри. У тебя есть две кодировки. Одна кодировка содержимого файла, а вторая - компонента, в который ты выводишь это содержимое. У компонент для вывода лучше иметь кодировку UTF-8. Ну а файл может быть произвольной кодировки. Сейчас у тебя программа работает только если всё в кодировке cp1251.
Re: Открытие файлов.
Добавлено: 27 май 2016, 20:38
develprog
AiK писал(а):. У компонент для вывода лучше иметь кодировку UTF-8. Ну а файл может быть произвольной кодировки. Сейчас у тебя программа работает только если всё в кодировке cp1251.
Теперь понятно. Осталось додуматься как сделать вывод в UTF-8.
Re: Открытие файлов.
Добавлено: 01 июн 2016, 13:52
develprog
AiK писал(а): всё в кодировке cp1251.
А какую установить кодировку в JTextArea? Какую бы не ставил выводит все равно квадратами .
Код :
File f = fileopen.getSelectedFile();
try (Reader reader = new InputStreamReader(new FileInputStream(f), "Cp1251"))
{
char[] buffer = new char[(int)f.length()];
reader.read(buffer);
tx.read( new FileReader( f.getAbsolutePath() ), null );
}
catch(IOException tx){
System.out.println(tx.getMessage());
}
}
});