|
|
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
Мне надо создать в SWING, AWT графическое приложение чтобы оно могло индекс. файлы в системе (что это кокретно это тоже несколько меня озадачивает, может присвоение уникального номера?), и потом записать файл в XML (так как возможности детализировать не было не понятно надо ли после индексирован. записывать даные в отдельный файл, и потом после его открытие конверитировать) с возможнотью поиска по имени. Теги должны быть имя, путь, размер. Ниже я привел код, который выводить на консоль эти данные о файле, и записывает при помощи класа Файл1 даные о каждом файле в вектор. Но узнать размер этого вектора (через ошибку Outofmemory, heap). Потому я добавил строки касательно записи этого вектора в сериализирующий файл. Но при компиляции появляются ошибки -- Symbol cannot found. В чем здесь проблема, кроме того что может там input output поменять, и как задать имя в создаваемый файл? java.io.File; import java.util.Vector; import java.io.ByteArrayInputStream; import java.io.ObjectInputStream; public class Filewalk { Vector<File1> vs= new Vector<File1>(); public void walk( String path ) { File root = new File( path ); File[] list = root.listFiles(); if (list == null) return; for ( File f : list ) { if ( f.isDirectory() ) { walk( f.getAbsolutePath() ); } else { File1 fv=new File1(f.getAbsoluteFile().toString(),f.length()); vs.add(fv); } } } public static void main(String[] args) throws Exception { Filewalk fw = new Filewalk(); File [] disks = File.listRoots(); for ( File d : disks ) fw.walk(d.toString()); ByteArrayInputStream baos = new ByteArrayInputStream(); ObjectInputStream oos = new ObjectInputStream(baos); oos.writeObject(fw.vs); oos.close(); } } class File1 { File1 (String path1, long size1) { this.path=path1; this.size=size1;} String path; long size;} Если не брать во внимание аспекты необходимости памяти возможно ли создать в этом же пакете файл-Swing который бы отображал Jtable (аргументом которой мог бы быть вышеприведенный вектор). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 20:37 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
arrtчтобы оно могло индекс. Русский не родной? arrtфайлы в системе (что это кокретно это тоже несколько меня озадачивает, может присвоение уникального номера?) Возможно просто список файлов. Надо смотреть формулировку самого задания. Например, содержание в книге это тоже index. arrtНо узнать размер этого вектора (через ошибку Outofmemory, heap). Я слов бы, но нет. arrtНо при компиляции появляются ошибки -- Symbol cannot found. Ошибки появляются более детализированные. Но вы нам предлагаете запустить ваш код и посмотреть на них самостоятельно? Используйте теги подсветки кода: Код: java 1. 2. Код: java 1. Возможно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2015, 09:27 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
А вот такой вариант может подойти. Чтобы на каждом этапе цикла обработки свойств файлов записывать строку в таблицу БД. Только не знаю возможно ли использование в операторе INSERT INTO переменых полученных тем более при исользование связки клас.метод. Ну и обработка исключений тоже много здесь тебует. Код: 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. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2015, 05:28 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
arrt, Все-таки хотел возвратится к листингу файлов. Вот несколько переделав код получаю такую ошибку: Код: 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. Ошибка -- File:0 IO.SYS c:\IO.SYS Exception in thread "main" java.lang.NullPointerException at Filewalker.walk(Filewalker.java:28) -- this.listed.add(odyn); at Filewalker.main(Filewalker.java:36) -- fw.walk("c:\\" ); -- но обьект создается (проверка через вывод свойств в конструкторе). Но при выводе в конструкторе length() дает всюду 0 (хотя имя и путь выводяться правильно), хотя в методе - walk, length() дает конкретный результат. В чем здесь причина? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2015, 18:14 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
сори, уже сам себе выправил касательно пустого неинициализированого вектора [хотя может здесь лутше подходить другая колекция например, List, для экономии памяти] Vector <Item> listed = new Vector <Item> (); А вот почему размер файла через lenght() не отображается непонятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2015, 18:34 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
arrt, В даном случае хотя-бы для диска С - для всех файлов проведен листинг - пол года назад был недостаток памяти. В общем можно проверить размер одного обекта Item через getObjectSize(), но размер целого вектора вряд ли, после заполнения. Но это все надо перевести в XML в отдельном окне, что не знаю возможно, но как? Хотя сперва надо разобратся с lenght() в конструкторе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2015, 18:43 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
//надо было поменять length=length на length=length1 в кострукторе. Вот я создал клас и для записи вектора в файл, но после исполнения файла файл на диске имеет всего 165 байт, что значит что файл фактически пуст а только на диске С в векторе после проверки есть 85 тыс. файлов. Код: 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. Что сделать что-бы на дисковый файл записывался уже полный вектор со всеми 85 тыс. обьектами? После раскоментирование //Filewalker fw = new Filewalker(); //fw.walk("c:\\" ); Я при листинге снова всех файлов при попытке записать файл послучаю Exception in thread "main" java.io.NotSerializableException: Filewalker$Item at java.io.ObjectOutputStream.writeObject0(Unknown Source) -- В чем причина. Почему не сериализируется вектор при записи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 03:33 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
Уже убрал статик перед вектором и создал обьект с нестатическим вектором тоже исключение java.io.NotSerializableException: Filewalker$Item at java.io.ObjectOutputStream.writeObject0(Unknown Source) Но причем здесь Filewalker$Item если запись формируется уже на заполненом векторе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 03:51 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
arrtНо причем здесь Filewalker$Item если запись формируется уже на заполненом векторе? А внутри "вектора" что лежит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 12:51 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Да я понимаю что внутри файлволкера есть вложенный клас. Так что конструкцию ObjectOutputStream out = new ObjectOutputStream( new BufferedOutputStream(new FileOutputStream ... невозможно применить к записи этого вектора в файл? Как и любой другой способ записи такого вектора будет невозможным? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 13:01 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
arrtBlazkowicz, Да я понимаю что внутри файлволкера есть вложенный клас. Так что конструкцию ObjectOutputStream out = new ObjectOutputStream( new BufferedOutputStream(new FileOutputStream ... невозможно применить к записи этого вектора в файл? Как и любой другой способ записи такого вектора будет невозможным? У вас очень странные фантазии. Вы бы вместого того чтобы выдумывать и предполагать, читали бы документацию. https://docs.oracle.com/javase/tutorial/jndi/objects/serial.html Ваша ошибка решается вот так: Код: java 1. И ещё IOException у вас обрабатывается не правильно https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 13:12 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, На счет фантазий, это у вас фантазии, извиняюсь за тавтологию. implements Serializable - я применял вчера, результат тот же: Исключение - но ошибок на счет обработки таких ситуаций у меня нету. Тем более я скопировал этот код с IO - ибо эта тема не очень то любима мною, потому редко с ней реально имел дело, особенно при использование врапперов потоков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 14:21 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
arrtimplements Serializable - я применял вчера, результат тот же: Это ложь. Тогда бы было другое сообщение об ошибке. arrtИсключение - но ошибок на счет обработки таких ситуаций у меня нету. Каких таких? Незакрытых ресурсов? arrtТем более я скопировал этот код с IO - ибо эта тема не очень то любима мною, Ваши вкусовые предпочтения очень важны в решении проблемы. arrtпотому редко с ней реально имел дело, особенно при использование врапперов потоков. Ну, так пора восполнить пробел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2015, 14:34 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, implements Serializable -- можете проверить. форум кажется есть для заполнение пробелов. Может вы б посоветовали удалить вложенный клас для сериализации, ибо кажется в этом причина - если для этого варианта не проходит то другие врапперы вряд-ли помогут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 00:24 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
Да помощи здесь не дождешся, потому взял и сам переделал файлволкер и все поместил в один клас со статическим вектором и статическим методом листинга. Хотя сериализация как бы тоже не работает с статическими переменными здесь файл записался с вектором на 11 мб, что явно не 3-4 кб. В общем не проверял через десериализацию можно ли отобразить данные полностью с файла в вектор. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 03:26 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
Осталось все это как-то в XML поместить, интересно как это сделать если это надо с помощью GUI - не буду ведь все XML помешать в Label, может TreeView подойдет? Может здесь какие-то предложения услышу [P.S. обьем одного обьекта файлволкера около 130 байт, но это вычислено с помощью статического подхода] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2015, 03:33 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
здесь я использую простой копи-паст (с xml вообще не работал на jave), но готовый xml-код работает для закоментированого кода. Для моего кода вызывает ошибку: Код: java 1. 2. 3. Код: 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. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. То есть что эта @XmlRootElement -- анотация делает, как ее расписывать для встроеной колекции вектор, и надо ли такую ж анотацию для файлволкера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 02:39 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
arrt, По задаче. Такие задачи решаются проще. Индексный файл это просто файл формата. Имя, ПутьКфайлу. Всё. Если ты описал всё ТЗ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 08:46 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
Petro123, не знаю что такое файл формата. Привели б пример, и то раньше. В любом случае, только на одном диске "С" есть 85 тыс. файлов с трема полями свойств - даже умножить на 10 будет 2,5 мб. - у меня получается 11,5 мб. - то есть вопрос эфективнее ли это? Но в XML мне надо и так вывести и то в Swing или AWT - потому мне сейчас актуальнее этот аспект. @XmlRootElement - что надо прописать? работает ли marshal с векторами, да и возможно ли в этом случае вывести в графическом а не только через System.out ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 12:34 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
arrtPetro123, не знаю что такое файл формата. это вот это в текствовом файле: Код: java 1. 2. 3. 4. 5. 6. 7. 8. Можно и в двоичном, если это тебе надо в ГУИ для объекта Tree Panel и т.д. смысл в том, чтобы прописать адрес файла у себя под рукой и не сканировать каждый раз систему. arrtто есть вопрос эфективнее ли это? если ты способен логически думать, то да. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 12:40 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
Petro123, не знаю что такое файл формата. Привели б пример, и то раньше. В любом случае, только на одном диске "С" есть 85 тыс. файлов с трема полями свойств - даже умножить на 10 будет 2,5 мб. - у меня получается 11,5 мб. - то есть вопрос эфективнее ли это? Но в XML мне надо и так вывести и то в Swing или AWT - потому мне сейчас актуальнее этот аспект. @XmlRootElement - что надо прописать? работает ли marshal с векторами, да и возможно ли в этом случае вывести в графическом а не только через System.out ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 12:41 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
arrt, "это вот это в текствовом файле" - так у меня это и выходит. "адрес файла" - С++ с адресами имеет дело, или вы очевидно имеете ввиду полный путь Что бы каждый раз не сканировать - ну так мне надо все файлы прочитать. Если там есть три задание сделать индексацию, вывести в XML, и записать в файл - и я в каждом задание делаю индексацию, думаю это не такая большая проблема. Может первое и второе задание обьединить - создать вектор (Кнопка ИНДЕКСАЦИЯ), потом Кнопка "Вывести XML" - уже с готового вектора в текстовое поле (или только в TreeView)?, и кнопка "Записать в файл" с выводом сообщение в Label что успешно записано в файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 12:53 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
arrt, Понятно. Занчит XML тебе жёстко задан. несмотря на автор (с xml вообще не работал на jave), тогда деразай! Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 13:00 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
Вот я состряпал на основание готового кода мой XML и у меня в цыкле for-each возникает ошыбка несовпадение типов при декомпозиции вектора - хотел бы чтобы мне подсказали как ее устанить. Код: 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. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. Понятно что в колекциях имеет место type erasure, но что в даном случае можно сделать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2015, 00:46 |
|
||
|
Листинг файлов с использованием GUI
|
|||
|---|---|---|---|
|
#18+
arrtВот я состряпал на основание готового кода мой XML и у меня в цыкле for-each возникает ошыбка несовпадение типов при декомпозиции вектора - хотел бы чтобы мне подсказали как ее устанить. Код: 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. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. Понятно что в колекциях имеет место type erasure, но что в даном случае можно сделать for ( Filewalker fp : Filewalker.listed ) { - так работает? company.appendChild(getCompanyElements(doc, company, "Size", String.valueOf(size))); - так работает? Чувак, что ты с файлами сделать хочешь? Я не догоняю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2015, 12:52 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39086894&tid=2124705]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
146ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 489ms |

| 0 / 0 |
