2015-03-22 3 views
1

Так я получил код:Чтение объекта из файла - Java

@Override 
    public String toString() 
    { 

    return "Numer: "+this.arg1 +" Imie: "+this.arg2 +" Nazwisko: "+this.arg3 +" nr Telefonu: "+this.arg4; 

} 

Сохранить OBJ в файл:

public static boolean addObject(Object object) throws IOException 
{ 
     PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(nazwaBazy, true))); 
     pw.println(object.toString()); 
     pw.close(); 
     return true; 
} 

Создание объекта:

static void dodajKontakt(String imie, String nazwisko, String nrtelefonu) 
{ 
    listaOsob.add(new Dane(imie, nazwisko, nrtelefonu, licznik)); 
    licznik = licznik+1; 
} 

и, наконец, чтение из файла и экономия до объекта ...

общественное статическое судно Олин wczytajBaze (объект Object) бросает IOException {

  BufferedReader br = new BufferedReader(new FileReader(nazwaBazy)); 
      boolean IsGood = false; 

       Path wiki_path = Paths.get(nazwaBazy); 
       Charset charset = Charset.forName("ISO-8859-1"); 


       try (BufferedReader reader = new BufferedReader(new FileReader(nazwaBazy))) { 
        while (true) { 
         String line = reader.readLine(); 

         if (line == null) { 
          break; 
         } 
        System.out.println(line); 

        listaOsob.add(new Dane(Dane.getImie(), Dane.getNazwisko(), Dane.getnrTelefonu(), Dane.getlicznik())); 
        } 
       } 

проблема заключается в том, что

listaOsob.add(new Dane(Dane.getImie(), Dane.getNazwisko(), Dane.getnrTelefonu(), Dane.getlicznik())); 

из Чтение из файла и сохранение объекта разве работает ... Я как-то знаю, что я должен положить на ToString это может быть, Потому что это Serializabled, но до сих пор я не знаю, как это сделать ...

Пример содержимого базы данных файла:

Numer: 1 Imie: Troll Nazwisko: Aaa nr Telefonu: 600600600 
Numer: 2 Imie: Troll2 Nazwisko: Bbb nr Telefonu: 700700700 
Numer: 3 Imie: Troll3 Nazwisko: Ccc nr Telefonu: 800800800 
Numer: 4 Imie: Troll4 Nazwisko: Ddd nr Telefonu: 900900900 
Numer: 5 Imie: Troll5 Nazwisko: Eee nr Telefonu: 101010101 
Numer: 6 Imie: Troll6 Nazwisko: Fff nr Telefonu: 010101010 

мне это нужно, чтобы быть сохранены в объект (мой ArrayList объектов) каждый раз, когда я запускаю программу ..

+1

Это очень толстая троллинг – Andremoniy

+0

, что заставило вас так думать? Я только начал Java, так что может показаться плохим, но его не троллинг – arienn

ответ

2

Вместо того, чтобы использовать устройство чтения/записи, для сериализации использования объекта ObjectInput/OutputStream. Попробуйте что-то вроде

 FileOutputStream out = new FileOutputStream("test.ser"); 
    ObjectOutputStream oout = new ObjectOutputStream(out); 
    oout.writeObject(object); 

Аналогично читать объект обратно, попробовать что-то вроде

 // create an ObjectInputStream for the file we created before 
    ObjectInputStream ois = 
      new ObjectInputStream(new FileInputStream("test.ser")); 
    System.out.println("" + (Object) ois.readObject()); 

Убедитесь, ваш Dane Класс Serializeable. Также вместо использования объекта передайте Dane вашему методу и используйте его.

+0

'¬í стер Dane-« Q2μ «N xp' это то, что создается в моем файле с помощью этого письма :( общественный класс Dane расширяет Особа реализует Serializable 'открытое статическое булево AddObject (объект Object) бросает IOException { // PrintWriter Pw = новый PrintWriter (новый BufferedWriter (новый FileWriter (nazwaBazy, правда))); // pw.println (Object.ToString()); // pw.close(); // возвращает истину, \t \t FileOutputStream Out = новый FileOutputStream (nazwaBazy); \t \t ObjectOutputS tream oout = new ObjectOutputStream (out); \t \t oout.writeObject (объект); \t \t return true; } ' – arienn

+0

' ObjectOutputStream' и 'ObjectInputStream' не предназначены для записи и чтения из текстовых файлов. Они пишут и читают объект в определенном двоичном формате. – Jesper

+0

Хорошо, это почти работает сейчас ... но проблема в том, что он всегда wirte в одной строке, и я хотел бы, чтобы он писал строку под строкой или что-то, чтобы я мог получить список всех массивов моих объектов. – arienn

Смежные вопросы