powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Листинг файлов с использованием GUI
25 сообщений из 112, страница 3 из 5
Листинг файлов с использованием GUI
    #39091793
arrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xmlmain() дает на выходе System.out (но тип xmlmain() void).
Надо что-бы textarea.read() принял этот System.out как System.in, что-бы
xmlmain() возврашал Writer тип, ибо read() как аргумент принимает Reader обьект.
Для чего изобретать велосипед? Для чего что-то усложнять.
Не верю, что невозможно в текстовое поле вывести консоль (поток текста).
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39091860
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну конечно. Если тебе вбилось в башку, что перед открытием текстового поля должен какой то класс делать работу в
arrt
Код: java
1.
2.
String ta=CrunchifyCreateXMLDOM1.xmlmain();
JTextArea textArea = new JTextArea(ta);


вместо того чтобы вообще выкинуть этот класс и написать типа:
Код: java
1.
myTextarea.read(new FileReader(file.getAbsolutePath()), null);


я же говорю, первый класс вторая четверть. Сами себе придумываем сложности.
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39091875
arrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
myTextarea.read(new FileReader(file.getAbsolutePath()), null);
-- Так чтобы записать в file.getAbsolutePath() надо наверное записать с помощью
FileWriter-а, и передать ему как аргумент (System.out), может лутче
передать напрямую myTextarea.read(new Reader(System.out),...).
У меня в задание - вывести в XML - а не записать на диск, а потом еще и считывать с файла.
Хотя если это дает экономию в месте на диске, то можно обойдить такой записью в файл.
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39091880
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arrtУ меня в задание - вывести в XML - а не записать на диск, а потом еще и считывать с файла.
дак ты разговаривай человеческим языком, а не как программист маньяк, который видит только своё решение.
....
В первом посте ты выбирал XML вроде САМ.
Если ты не можешь изменить формат, то скажи это чётко.
2. Если не писать на диск, то при каждом старте ты по новой сканируешь? Зачем? Препод задал?
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39091941
arrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Если не писать на диск, то при каждом старте ты по новой сканируешь?" - кажется там есть вектор (в ОП) с которого можно считывать в XML и записывать на диск.
В этом коде надо конвертировать OutputStream в InputStream, что наверное не так то просто.
Ибо это класы абстактные самого верхнего уровня.
Код: java
1.
2.
3.
4.
5.
6.
7.
InputStream in=CrunchifyCreateXMLDOM1.xmlmain(); // CrunchifyCreateXMLDOM1.xmlmain() --тип //Outputstream
    Reader reader = new InputStreamReader (in);
    JTextArea textArea = new JTextArea();

    textArea.read(reader,null); // Непонятно что в даном случае как другой аргумент назначать,
   //Я назначил Null
    textArea.setSize(500,500);  
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39091969
arrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Считать с xml-файла в текстовое поле несколько сложнее нежеле вы написали (вот это работает):
Код: 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.
JTextArea textArea = new JTextArea();
    textArea.setSize(400,500);    
    textArea.setLineWrap(true);
    textArea.setEditable(true);
    textArea.setVisible(true);
    try {
    FileReader f = new FileReader("D:\\file.xml");
    BufferedReader b = new BufferedReader(f);
  
    boolean eof = false;
  
   while(! eof)
  {
  String lineIn = b.readLine();
  if(lineIn == null)
    {
    eof = true;
    }
  else
    {
    textArea.append(lineIn + System.getProperty("line.separator"));
    }
  }
  
   } catch (Exception e) {
            e.printStackTrace();
        }


А перевести вых.поток во вх.поток надо использовать Pipedout(in)putStrems, или метод setout - с котором сегодня впервые слышу. В любом случае если записывать в файл на диске надо знать наперед что такой диск есть, есть там место, или еще делать окно для задание имени файла.
То есть сейчас предстоит задача -- уже делать окончаательный ГУИ, если конечно в индексере не надо было указывать еще принадлежность файлов папкам (есть такой пример на java2s).
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39092034
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arrt"Если не писать на диск, то при каждом старте ты по новой сканируешь?" - кажется там есть вектор (в ОП) с которого можно считывать в XML и записывать на диск.
у тебя удивительная способность не отвечать на вопросы.
- да или нет?
Код: java
1.
2.
String ta=CrunchifyCreateXMLDOM1.xmlmain();
JTextArea textArea = new JTextArea(ta);


где тут мы читаем файл?

arrtкажется там есть вектор
чтобы не делать говонокод, сделай 2 класса:
Код: java
1.
ЧитаемФайлXMLиДобавляемНодуИмя(textArea); //внутри textArea.add(строка во время парсинга)


и
Код: java
1.
СканируемДискИпишемВфайл(имяXMLфайла) // вызываем на кнопку Сканировать медиа файлы


2 класа нужны, т.к это совершенно разные по функционалу элементы.
В первый класс передаётся ГУИ объект, а второй может быть вызван хоть сервисом, хоть шедулером, хоть листенером по событию с операционки.
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39092035
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
итого будет вместо:
Код: java
1.
2.
String ta=CrunchifyCreateXMLDOM1.xmlmain();
JTextArea textArea = new JTextArea(ta);


типа так:
Код: java
1.
2.
JTextArea textArea = new JTextArea(ta);
ЧитаемФайлXMLиДобавляемНодуИмя(textArea); 
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39092037
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arrtСчитать с xml-файла в текстовое поле несколько сложнее нежеле вы написали (вот это работает):
да. Замечательно.
Только нельзя мешать код создания ГУИ с фашими циклами.
- убери весь код while(! eof) в ЧитаемФайлXMLиДобавляемНодуИмя(textArea); и оставь пока вывод голого XML текста
arrtВ любом случае если записывать в файл на диске надо знать наперед что такой диск есть, есть там место, или еще делать окно для задание имени файла.
выше по ТЗ файл рядом с программой. Без всякого окна выбора.
arrtТо есть сейчас предстоит задача -- уже делать окончаательный ГУИ
нет. Идти ровно по ТЗ что я написал.
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39092152
arrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1.Не хочет читать текст-ареа с потока, даже после того как я
использовал "трубу", и перенес метод метод создание xml в клас ГУИ.
Код: 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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
public static void main(String[] args)
    {
        JFrame frame = new JFrame ("tt");
        frame.setSize(500,500);
        frame.setResizable(false);
    
    gui.xmlmain();
    
     PipedOutputStream po;
     PipedInputStream pi;
     try {
    po = new PipedOutputStream();
    pi=new PipedInputStream(po); 
     } catch (Exception e) {
            e.printStackTrace();
        }
    
    
    JTextArea textArea = new JTextArea();
    Reader reader = new InputStreamReader (System.in);
    try {
    textArea.read(reader,System.in);
     } catch (Exception e) {
            e.printStackTrace();
        }

        
    textArea.setSize(500,500);    
    textArea.setLineWrap(true);
    textArea.setEditable(true);
    textArea.setVisible(true);

    JScrollPane scroll = new JScrollPane (textArea);
    scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    //frame.add(textArea);
    frame.add(scroll);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    }


И проблема в этом коде:
Код: java
1.
2.
3.
4.
5.
 try {
    textArea.read(reader,System.in); //textArea.read(reader,null) - то же самое
     } catch (Exception e) { 
            e.printStackTrace();
        }

-без него создается хоть пустое но окно textArea,
а с ним даже обьект textArea не появляется.
2. Может действительно, если здесь выводится System.out,
то взять и по-строчкам (через readline), добавлять текст в текст-ареа
с помощью append() - но там был EOF, а здесь.
Можно ли с помощью setOut перенаправить System.out в какой то виртуальный поток а потом уже добавлять по строкам?
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39092158
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arrtиспользовал "трубу",
мда...видно что вы программист маньяк)). Сами с собой разговариваете. System.out у вас как неотвязная белая горячка.
Удачи в терзаниях задачи первоклассника!
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39092273
arrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, вы пожалуста не обзывайтесь, а то на воре шапка горит.
C xml да и с потоками фактически не работал, потому можете смело не меня, а себя програмистом, и в придачу маньяком назвать.
Я вообще то в последнем посте спрашивал почему не работает textArea.read().
Очевидно, что можно компонент трансформера (он ведь на выходной поток или в файл перенаправляет xml) не использовать, а выводить напрямую обьект Document.--> toString() – кажется это собственно xml.
Но выведется ли полностью текст, или надо по строчкам, непонятно.
Касательно OutputStream в InputStream, то это распространенный вопрос в Интернете, и именно «пайп» позволяет его разрешить.
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39092384
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arrtКасательно OutputStream в InputStream, то это распространенный вопрос в Интернете, и именно «пайп» позволяет его разрешить.
В большинстве случаев не позволяет. Если бы я хоть немного знал Java, я бы посоветовал посмотреть Apache Commons IOUtils.copy().
Но так как Java я совсем не знаю, то посоветовать не могу. И объяснить Piped*Stream тоже.
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39093126
arrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
copy работает в обратном порядке in->output.
Вот получилось передать в append такой метод -
Код: 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.
public static ByteArrayInputStream xmlmain1 () throws Exception {
            DocumentBuilderFactory icFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder icBuilder;
            icBuilder = icFactory.newDocumentBuilder();
            Document doc = icBuilder.newDocument();
            Element mainRootElement = doc.createElementNS("http://crunchify.com/CrunchifyCreateXMLDOM", "File"+""+"System");
            doc.appendChild(mainRootElement);     
            Filewalker.walk("c:\\" );   
            for ( Filewalker fp : Filewalker.listed ) {    
            // append child elements to root element
            mainRootElement.appendChild(getCompany(doc, fp.name, fp.length, fp.path));}           
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            ElementToStream(doc.getDocumentElement(), baos);
            return new ByteArrayInputStream((baos.toByteArray()));
            }
                         
            public static void ElementToStream(Element element, OutputStream out) {
      try {
      DOMSource source = new DOMSource(element);
      StreamResult result = new StreamResult(out);
      //PrintStream p= PrintStream(out);
      //p.setOut(out);
      TransformerFactory transFactory = TransformerFactory.newInstance();
      Transformer transformer = transFactory.newTransformer();
      transformer.setOutputProperty(OutputKeys.INDENT, "yes");
      transformer.setOutputProperty(OutputKeys.METHOD, "xml");  
      transformer.transform(source, result);
      } catch (Exception ex) {
      }       
      }


Но выводит в тестовой области xml не полинейках, а подряд (считывание readline дает тот же результат). В консоли дает вообще без формата текст:
File:6 MSDOS.SYS c:\MSDOS.SYS
File:95202 COMMAND.COM c:\COMMAND.COM
not
</File>
<File>
<Name>MSDOS.SYS</Name>
<Size>6</Size>
<Path>c:\MSDOS.SYS</Path>
</File>
<File>
<Name>COMMAND.COM</Name>
<Size>95202</Size>
<Path>c:\COMMAND.COM</Path>
</File>

Изменение в SetoutputProperty Intend ничего не дают -
ходя в предыдущей версии метода - смена yes на no - вообще выводит
xml в одну линейку подряд
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39093182
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arrt,
информатику в школе изучал?
Код: java
1.
2.
3.
4.
5.
6.
7.
ЧитаемФайлXMLиДобавляемНодуИмя(textArea){
  ПарсерXML.Открыть(Файл);
  ЦИКЛ
     node = node.nextSiblingNode;
     textArea.add(node.GetAtribute('ИмяФайла'));
  КОНЕЦ ЦИКЛА
}
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39093190
arrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, да не имеет JtextArea метода add. И с файла я уже считывал УСПЕШНО два дня тому или три.
Но уже тогда заметил что вместимость JtextArea ограничена.
Вот теперь удалось с помощью append прикрепить форматированый xml в textArea но
когда проверил то увидел что лиш для 300 файлов выводит информацию о свойтсвах (1500 строк) - и еще хуже хотя поставил ограничение на прочтение лиш 1000 файлов (всего на диске С:\ 85 тыс.) но считывалась эта информация несколько минут как со всего диска, но вывело информацию лиш для 300 файлов.
И самое интересное что сперва был в консоли неотформатированый xml - наверное лиш те 1000 файлов, а потом в консоли отображался форматированый xml несколько минут. То есть почему то break в методе после 1000 не прошел (или все пошло по второму кругу).
в любом случае -- несколько минут окно textArea не отображалось (ну может это можно было решить спомощью invokeLater)--если нет то даже не знаю как в GUI это разрешыть.
Ну и главный вопрос -- какая максимальная длина в строках JtextArea (может кто подскажет)- не думаю что более 100 тыс. что мне надо, потому вариант наверное отпадает.
Может в С++ (QT) возможности лутче.
Потому остается лиш вариант Jtree - хотя там может тоже быть ограничение. В любом случае
смысла отображать все файлы нету - лиш для наглядности (как и для Jtree - хотя это не очень XML). Потому сейчас задаю простой вопрос -- как в Jtree сделать узлы раскрытыми??
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39093196
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arrtPetro123, да не имеет JtextArea метода add.

=== и похожего нету?


И с файла я уже считывал УСПЕШНО два дня тому или три.

=== и где код?
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39093197
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arrtНо уже тогда заметил что вместимость JtextArea ограничена.
Мария Васильевна на информатике тебе скажет: "Вася! Мы просто заменим слово textAtea" на "таблицаБД", а ПарсерXML на DataSet
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39093198
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arrt,
всё остальное после ответов, а то ты сам с собой бредишь.
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39093773
arrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Петро, повирь мне, меня такого учительница даже близко не учила, и когда это было.
Для чего здесь еще и БД подвязывать - это пытался сделать весной для этого задания -
xml апендится уже, второй вопрос как. Вопрос реально, не только к этому заданию, почему не можно прочитать поток с помощью метода read() в текстовую область. Для чего изобретать китайский велосипед с БД (это разве не бред?), если так должно работать - это не Высшая Математика програмирования.
Выберу все таки вариант с записью XML файла, а потом считывания.
Хотя не очень то хорошо они записываются на диск – с ошибками и не полностью.
А еще надо поле для поиска файла по названию, и еще в XML...
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39093795
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arrt,
ты много строк не пиши. Один фиг, отвечаешь и осмысливаешь ты только одну.
arrtВыберу все таки вариант с записью XML файла, а потом считывания.
ТЗ
18350305
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39093813
arrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понял должен здесь отчитыватся...
Выбрал запись на диск (хотя после предпоследней записи файл записи был несколько кб, теперь 0 - то есть дело не очень надежное), ибо не хочется ждать минуты пока xml покажется в самом приложение - да и третье (а может второе) задание выполню - запись на диск - проверить которое сможет даже непрограмист.
А задание заполнение текстовой области с памощью read() остается на усмотрение реальных опытных програмистов - может это был как раз тот вариант, самый подходящий
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39093989
arrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот считываю с файла xml при builderFactory.setValidating(true) и пытаюсь вывести в консоль
при помощи метода transform() и получаю -
Код: java
1.
2.
3.
4.
Error at line 2
Document is invalid: no grammar found.
Error at line 2
Document root element "FileSystem", must match DOCTYPE root "null".


Что вручную вписывать, или может при записи файла указать необходимые параметры?
Ведь если сделаю builderFactory.setValidating(false) то
в консоле вобьще ничего не отображается.
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39094018
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arrt,
забудь слово консоль, поток, трансформ.
Выше тебе даже код по информатике привели
...
Рейтинг: 0 / 0
Листинг файлов с использованием GUI
    #39094126
arrt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну такая переписка точно бред.
Я ведь уже пишу что записываю в файл и считываю с файла-и тут такие ошыбки, которые разве вручную устранять.
А считывать с файла надо для поиска по тегам NAME- хотя может этой ошибки и не будет при поиске- да и эти ошибки не единичные. Но как их устраниить при записи в файл не понятно.
...
Рейтинг: 0 / 0
25 сообщений из 112, страница 3 из 5
Форумы / Java [игнор отключен] [закрыт для гостей] / Листинг файлов с использованием GUI
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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