Преобразование текста, выгруженного из текстового файла в CSV и Array - PullRequest
2 голосов
/ 23 мая 2011

Я использовал actionListener для передачи текста из множества TextFields в текстовый файл с именем writetouser.txt, это прекрасно работает, хотя я заметил, что этот текст просто выгружается и не имеет формат массива.Для целей этого приложения необходимо, чтобы я мог искать этот текстовый файл и показывать значения на основе введенных поисков.У меня есть файл, который читает данные из текстового файла и пытался преобразовать данные в CSV, чтобы они были читаемыми в виде массива.Мне интересно, что нужно ввести вместо пользователя, передать, чтобы взять текст из файла writetouser.txt.

Приложение:

public void ReadUser()
 {
  try{
// Open the file
FileInputStream fstream = new FileInputStream("writetouser.txt");
    BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null)   {
  // Print the content on the console
  //System.out.println (strLine);

    String[] items = strLine.split(",");
    String[][] usersArray = new String [10][2];

    for (String item : items) {
       System.out.println(item);
    }
}
       //Close the input stream
in.close();
}catch (Exception e){
    //Catch exception if any
  System.err.println("Error: " + e.getMessage());
}

}}

Вот пример данных, которые я пытаюсь разделить.он вводится в текстовый файл как

 inputUser = user + ", " + pass;
 writetouser.WriteToUser(inputUser);

dburgess, 2345

Ответы [ 3 ]

1 голос
/ 23 мая 2011

Я заметил, что эта строка закомментирована:

//System.out.println (strLine);

Что говорит мне о том, что вы, вероятно, пытались убедиться, что вы получаете строку, которую вы ожидаете от своего файла. Если вы получаете то, что ожидаете, мы можем двигаться дальше. Если нет, то проблема в том, как файл читается, или данные не отформатированы так, как вы ожидаете.

Если у нас все хорошо, мы столкнулись с проблемой анализа и отображения содержимого файла. Я предполагаю, что вы пытаетесь записать содержимое файла на свой терминал и ожидаете один формат, но получаете другой.

Я думаю, то, что вы сейчас увидите, выглядит примерно так:

Username: dburgess
Password: 2345

(с печатью не более 1 пары имя пользователя / пароль).

И я предполагаю, что вы хотите что-то вроде этого:

Username: dburgess       Password: 2345
Username: someOtherUser  Password: SomeOtherpass
Username: blahblah       Password: etcPass
....
Username: thelastOne     Password: Icanhazpassword?  

Там много предположений (я все еще не совсем уверен, что вы пытаетесь сделать) - если эти предположения верны, дайте мне знать; Я выложу несколько советов по форматированию.

1 голос
/ 23 мая 2011

Я думаю, что вы хотите:

String[] items = strLine.split(",");
0 голосов
/ 24 мая 2011

Просмотрев мой код, я заметил, что два приведенных ниже фрагмента кода делают одно и то же, поэтому мне дважды представили каждый фрагмент информации.

A

 for (String item : items) {...}

B

for (int i = 0; i < items.length; i++) {
    String item = items[i];
    ....
    }
...