Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Технологии > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 17.02.2018, 23:41   #1
Алексей117
Новичок
 
Регистрация: 17.02.2018
Сообщений: 2
Репутация: 10
Вопрос Написать на java программу, которая находит все текстовые файлы, отсортировать их по имени и склеить содержимое в один текстовый файл.

Добрый день,решаю задачу :
Имеется корневая папка. В этой папке могут находиться текстовые файлы, а также другие папки. В других папках также могут находится текстовые файлы и папки (уровень вложенности может оказаться любым).
Написать на java программу, которая находит все текстовые файлы, отсортировать их по имени и склеить содержимое в один текстовый файл.

Написал класс для поиска текстовых файлов

iimport java.io.*;
import java.util.*;


public class Main1 {
private static ArrayList<File> listWithFileNames = new ArrayList<>();
public static int content;

public static void main(String[] args) throws IOException {
getListFiles("C:\\backet");
for (File fil : listWithFileNames) {
String res = fil.getName();
if(res.contains(".txt")) {
try(FileReader reader = new FileReader(fil)) {
// читаем посимвольно
while((content=reader.read())!=-1){
//System.out.print((char)content);
}
} catch(IOException ex){
System.out.println(ex.getMessage()) ;
}
// System.out.println(fil.getName());
}
}
//Записываем в файл
try(FileWriter writer = new FileWriter("C:\\backet\\global.txt" , false))
{
writer.write((char)content);
// запись по символам
writer.append('\n');
writer.append('E');

writer.flush();
writer.close();
System.out.println("Запись прошла успешно");
}
catch(IOException ex){

System.out.println(ex.getMessage()) ;
}
}
public static void getListFiles(String str) {
File f = new File(str);
for (File s : f.listFiles()) {
if (s.isFile()) {
listWithFileNames.add(s);
} else if (s.isDirectory()) {
getListFiles(s.getAbsolutePath());
}
}
}
}

Не работает запись в файл,ни как не пойму почему,содержимое файлов всех выводит правильно
И не понял как отсортировать ArrayList<File> listWithFileNames
И дальше завис,прошу помощи,подскажите пожалуйста как можно реализовать
Спасибо)))
Алексей117 вне форума   Ответить с цитированием
Старый 18.02.2018, 05:42   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 954
Репутация: 667
По умолчанию

Что приказываете записать - то и пишет: три символа
Black Fregat на форуме   Ответить с цитированием
Старый 18.02.2018, 13:05   #3
Алексей117
Новичок
 
Регистрация: 17.02.2018
Сообщений: 2
Репутация: 10
По умолчанию

Подскажите пожалуйста то есть мне нужно передать вот так?
writer.append((char)content);
Алексей117 вне форума   Ответить с цитированием
Старый 18.02.2018, 16:33   #4
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 954
Репутация: 667
По умолчанию

Вы ведь сначала читаете все исходные файлы, потом открываете выходной и один раз записываете в него самый последний content
А надо открыть файл в самом начале и писать content по мере чтения
Black Fregat на форуме   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файлы: В файле f записаны целые числа. Написать программу, которая в файл g записывает четные числа, а файл h - нечетны Гарри Паскаль 1 12.06.2015 01:26
написать программу, которая находит 20 целых решений уравнения x^2+y^2=z^2 (x,y,z<>0) katya111 Паскаль 0 18.05.2011 15:43
Написать программу которая создаэт текстовый файл c данними SashOK1991 Паскаль 0 06.06.2010 15:45
Написать программу которая создаэт текстовый файл даных. SashOK1991 Помощь студентам 1 02.06.2010 18:45
Написать программу которая создаэт текстовый файл даных. SashOK1991 Паскаль 2 31.05.2010 23:48


23:35.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru