| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Не пишется стринг в файл |
| Автор: batex 17.9.2011, 21:14 | ||||
| Столкнулся с проблемой. Не могу записать String в файл. Пишет это : Exception in thread "main" java.lang.ClassCastException: java.io.File cannot be cast to java.lang.String at FileSearch.main(FileSearch.java:81) Вот суть кода, где имею дело с этим файлом(args[2] - имя файла, 12345)
Насколько я понимаю, не пишет из-за того, что NameFiles[i] это Object. PS сделал вывод через FileOutputStream fos = new FileOutputStream(NameFile); ObjectOutputStream out = new ObjectOutputStream(fos); out.writeObject(NameFiels[i]); Выводит много ереси. Как убрать ересь? PSS Вот весь код. Ищет файлы в директории, открывает и ищет подстроки в строках. Вывод на экран и в файл.
|
| Автор: jk1 18.9.2011, 09:00 | ||
В Name надо получить имя файла? тогда вот так
P.S.: А почему бы не объявить FileNames как File[] ? |
| Автор: batex 18.9.2011, 11:07 | ||||
ну да, согласен, лучше объявить как File. Имя файлов мы получаем в NameFiles[i]. Потом приравниваем Name (string) к NameFiles[i]. С помощью вот этого
он ничего не выводит. А с помощью этого:
он выводит перед название файла ересь. |
| Автор: jk1 18.9.2011, 14:02 | ||||
Что просите, то и выводит. ObjectOutputStream предназначен для сериализации, а не для записи текстовых файлов. Вот правильный вариант
Кстати, Ваш код падает, если в папке есть другие папки. Проверяйте файлы, не являются ли они вдруг папками. |
| Автор: batex 18.9.2011, 17:05 |
| Спасибо, все заработало. То, что код падает, если есть папки в директории, я знаю, просто хотел сначала с выводом разобраться |