Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Работа с файлом


Автор: snorkee 9.3.2005, 00:03
У меня есть txt файл с такой информацией:

1 Man 16 S 185 8
2 Woman 4 L 26 168 6
3 Woman 8 G 93 6
и т.д.....

Каким образом мне получить из этой информации
массив [][] = { {1,"Man", 16,"S", ,185,8} ,{2,"Woman", 4,"L",26,168,6},
{1,"Woman", 8,"G", ,93,6}, { и т.д....}}

И ещё, каким образом можно подсчитать количество строчек в файле?

Автор: Domestic Cat 9.3.2005, 00:26
Код

String[] [] array = new String[66][66];
BufferedReader br = new BufferedReader(new FileReader("myfile.txt"));
String line = br.readLine();
int lineNo = 0;

while(line != null)
{
     int colNo = 0;      
     StringTokenizer stk = new StringTokenizer(line);
     while(stk.hasMoreTokens())
     {
           array[lineNo][colNo] = stk.nextToken();
           colNo++;
     }
     lineNo++;
     line = br.readLine();
}

br.close();


1. Код я нe проверял.
2. С количеством элементов массивa разберись сам. И иксепшнами тоже.

Автор: sergejzr 9.3.2005, 00:41
Я, наработавшись со скриптами, тоже предложу вариант. smile
Код

public String[][] splitFile(File f)
{
 String[][] array;
 String line;
 Vector v=new Vector();
 BufferedReader br = new BufferedReader(new FileReader(f));

 while( ( line = br.readLine() ) != null)
   v.add(line.split(" "));
 br.close();

 array=new String[v.size()][];
 v.toArray(array);
 return array;
}

Автор: Domestic Cat 9.3.2005, 00:53
это хорошо когда одни стринги нужно читать smile А если их нужно сконвертировать в инт например, тo не очень удобно.

Автор: snorkee 20.3.2005, 00:00
такая задача - у меня есть директория и в этой директории некоторое количество файлов, других папок, в папках файлы и т.д. Мне нужно получить list всех файлов которые имеются в моей parent директории (то есть и тех которые в других папках и т.д.)

У класса File есть метод listFiles() который даст мне только список файлов и папок в этой директории, на уровень ниже он уже не опускается.

Вопрос: Чтоб реализовать нужную мне функцию нужно делать цикличную проверку того что если есть ещё поддиректории, то нужно применить listFiles и для них и потом запихать полученные пути в предыдущую структуру или всё же есть какой то метод который автоматом всё проверит?

Автор: Domestic Cat 20.3.2005, 00:16
Модератор: ОДИН ТОПИК - ОДИН ВОПРОС


Например, такой код должен напечатать все файлы ( не проверял) если f - папка. Уже сам доработай
Код

public voif printFilesInFolder(File f)
{
      File[] files = f.listFiles();
      for (i = 0; i < files.length; i++)
      {
            if (files[i].isFile()) System.out.println(files[i].getName());
            else printFilesInFolder(files[i]);
      }
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)