Превращение текстового файла String в массив объектов - PullRequest
2 голосов
/ 01 февраля 2012

Я хочу использовать текстовый файл, взять каждую строку и поместить ее в массив classobject.Это мой код

try {
    // Open the file that is the first
    // command line parameter
    FileInputStream fstream = new FileInputStream("Patient.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);
    }
    // Close the input stream
    in.close();
} catch (Exception e) { // Catch exception if any
    System.err.println("Error: " + e.getMessage());
}

Мне нужно преобразовать это в объект массива, и вот как я хочу, чтобы он выглядел как

Patient1 p[] = new Patient1[5];
p[0] = 001, "John", 17, 100, 65, 110, 110, 110, 109, 111, 114, 113, "Swaying, Nausea";
p[1] = 002, "Sun Min", 18, 101, 70, 113, 113, 110, 119, 111, 114, 113, "None";

и т. Д.

Ответы [ 2 ]

1 голос
/ 01 февраля 2012

Основываясь на том, что предложил AVD, вы можете достичь того, что вы хотите, с помощью конструктора, который принимает ваши значения - хотя не рекомендуется использовать слишком много параметров в конструкторе (для удобства чтения и отладки).В зависимости от того, как ваши данные упорядочены и прочитаны, вы даже можете использовать String.split , чтобы получить все в один тип (т. Е. String).

public class Patient {

   public Patient(String name, String id, String symptoms, String measurements) {  to get the individual fields from using a delimiter.

        // Stuff to fill in the fields goes here
    }
}

Вы можете вызвать это, используявызов new Patient("John, "001", "Swaying, Nausea", ...).Опять же, это зависит от того, как вы читаете поступающие данные;если вы не можете собрать данные разумным образом, вы можете также создать аксессоров и мутаторов .

0 голосов
/ 01 февраля 2012

Вы должны создать класс Patient с 13 полями, конструкторами и установщиком / получателем.

public class Patient
{
   private String field1;
   private String field2; 
   private int field3;
   ....
   public void setField1(String field1) { this.field1=field1; }
   public String getField1() { return field1;}
   ...   
}

и использовать ArrayList<Patient> вместо массива.

ArrayList<Patient> patients=new ArrayList<Patient>();
Patient pat=new Patient();
//set value to the patient object
patients.add(pat);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...