![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
check |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 610 Регистрация: 3.4.2006 Репутация: 2 Всего: 23 |
Метод open открывает файл и выводит его в текстовое поле, где его можно отредактировать.
Метод save должен сохранить отредактированный текст в тот же файл. Однако при нажатии кнопки "сохранить" выдается FileNotFoundException, хотя путь к файлу в FileInputStream передается правильный. Если передать в FileInputStream произвольное имя файла, какой-нибудь 1.txt, сохраняется без проблем.
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Все нормально работает. Рассказывай подробней как запускаешь, что делаешь.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
check |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 610 Регистрация: 3.4.2006 Репутация: 2 Всего: 23 |
Да в общем, всё как обычно.
Компилю
Запускаю
Открываю диалог выбора файлов, потом открываю какой-нибудь текстовый файлик, редактирую его, нажимаю "сохранить". Файл остается таким, какой был, а в консоль выдается ошибка. Вот в общем-то и всё... |
||||
|
|||||
Metal_Heart |
|
||||||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
Я посмотрел, правда убрал эти строки:
результат: открывает, сохраняет, но дописывает ещё кучу всякого двоичного мусора. вставил вывод отладочной инфо: в open():
и в close():
добавив в исходный текстовик 1 символ получил следующее: длина до: 9 длина после: 10 открыл заного: длина до: 31 Как я поборол данную проблему: 1. очистка JTextArea в open(): txt.setText(""); 2. в save(): вместо out.writeChars(txt.getText()); подставил out.writeBytes(txt.getText()); Это сообщение отредактировал(а) Metal_Heart - 14.9.2006, 09:54 -------------------- не стыдно учиться, а стыдно не учиться |
||||||
|
|||||||
LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Это не мусор, он просто сохраняет файл в кодировке UTF-16BE. Вот что написанно в JavaDoc по поводу данной ошибки:
вариант с директорией отпадает, остается нехватка прав на запись в данный файл. Проверь что у файла не стоит атрибут read-only и у пльзователя достаточно прав. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
check |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 610 Регистрация: 3.4.2006 Репутация: 2 Всего: 23 |
LSD, да там стоял read-only.
![]()
Metal_Heart, помогло, спасибо.
Да, это я конечно погорячился. |
||||
|
|||||
Metal_Heart |
|
|||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
Это я понял, но ведь текстовому файлу этого не объяснишь! ![]() Добавлено @ 12:54 Я очень рад! ![]() -------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
MOFA |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 17.12.2006 Репутация: нет Всего: нет |
Та же проблема, FileNotFoundException при попытке создать FileOutputStream по заданому пути к файлу, хотя путь к файлу в передается правильный, я его вывожу для отладки. Если передать в FileOutputStream произвольное имя файла, какой-нибудь с:/1.txt, то файл создается без проблем, правда при попытке писать в него тоже генериться ексепшн.
Кусок кода такой:
PathUtil().getNotExistPath(imageFileName) - возвращает полный путь к файлу, от корня, причем к еще не существующемо файлу. Помогите пожалуйста, уже много дней ищу решение. |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
1) Выложи стек-трейс исключения.
2) Приведи более подробный код (без new PathUtil().getNotExistPath(imageFileName), чтобы строки были хардкодные). а еще какое имя можно задать? .. кроме призвольного... |
|||
|
||||
MOFA |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 17.12.2006 Репутация: нет Всего: нет |
Кстати, я дописал такие штуки:
Первая проверка выдает false, тоесть писать нельзя, вторая проверка выдает ccess denied (java.io.FilePermission obr/00.img write). Причем, файл который я хочу создать и в него записать нигде до этого не открывался и путь на моей машине, а не на чужой, тоесть получается что у меня нету прав, как это можно исправить? |
|||
|
||||
MOFA |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 17.12.2006 Репутация: нет Всего: нет |
Ну так что, кто-то знает в чем проблема и как ее решать?
Очень нужно, мож кто-то сталкивался, помогите пожалуйста. |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
MOFA,
|
|||
|
||||
MOFA |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 17.12.2006 Репутация: нет Всего: нет |
1) Трека как такового нету, выводит одну строку ексепшина
например: file:\D:\__InstWorks\4_course\4_1\OPSSHI\my_course_work\project\classes\obr\00.img (Синтаксическая ошибка в имени файла, имени папки или метке тома) 2) Пример хардкорной строки : file:/D:/__InstWorks/4_course/4_1/OPSSHI/my_course_work/project/classes/obr/00.img , такая какую показывает в ексепшине 3) Третий вопрос не понял, можно задавать любые имена, но при этом иногда файл создается, иногда нет, но не пишет в файл в любом случае. |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
ты сам ответил на свой вопрос: Синтаксическая ошибка в имени файла, имени папки или метке тома.
Имена задовать можно не все, а только те которые позволяет файловая система. Если файл не создается, то естественно записи никакой не будет. Иначе вопрос спорный. Если у тебя доступ к файловой системе только на чтение, то создать файл в ней никто не позволит, уж тем более писать в него. Начни с формирования корректных имен файлов. |
|||
|
||||
MOFA |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 17.12.2006 Репутация: нет Всего: нет |
Может имеет смысл не указывать полный путь от корня, можно указать относительный путь, чтобы например создавалась папка рядом с приложением и потом в нее писались файлы, тогда у меня возникает вопрос, как это корректно сделать, можно пример?
И еще, насчет доступа, я же пишу на свою машину, какие тут могут быть проблемы, файл не ридонли, его изначально вообще не существует. Добавлено @ 15:06 И еще, если изменить например на такое:
то выводиться другой ексепшн: D:\__InstWorks\4_course\4_1\OPSSHI\my_course_work\project\classes\obr\00.img (Системе не удается найти указанный путь) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |