• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[JAVA] Problem z kodem. Więcej w opisie.

0 głosów
722 wizyt
pytanie zadane 28 października 2018 w Java przez ILikeJava Obywatel (1,230 p.)

Witam. Mam z tym kodem pewien problem. Gdy tworzę plik, zapisuję go, a następnie otwieram, tekst pojawia się tylko w TextFieldzie TOPIC. Totalnie o ogarniam dlaczego. Gdy w notatniku zedytuję plik to wszystko się ładnie otwiera ale gdy chcę otworzyć plik stworzony w klasie FileCreator w metodzie finishClicked to jest problem. Na 99% jest problem z getterami w klasie EmailTab lub w klasie Main w metodzie saveAsClicked. Będę bardzo wdzięczny za pomoc bo nie mogę dojść co jest źle.

 

komentarz 28 października 2018 przez mbabane Szeryf (79,260 p.)
W którym miejscy wczytujesz plik?
komentarz 28 października 2018 przez ILikeJava Obywatel (1,230 p.)
Klasa EmailTabCreator metoda createTabForOpener(String path). Tam jest tworzony obiekt klasy MaReader która ma metody do odczytywania z pliku odpowiednich danych. W klasie MaReader jest jeszcze tworzony FileReader.

1 odpowiedź

+1 głos
odpowiedź 28 października 2018 przez mbabane Szeryf (79,260 p.)
wybrane 5 listopada 2018 przez ILikeJava
 
Najlepsza

Algorytm wczytywania tego pliku jest jakiś dziwaczny (przynajmniej dla mnie) więc pewnie tam jest problem (500 ifów).

A FileReader jest tworzony tylko po to aby go zamknąć:

if (String.valueOf(sb).equals(".ma"))
{
     FileReader fileReader = new FileReader(path);
     fileReader.close();
}

I samo wczytywanie za pomocą załadowania całego pliku do Stringa i szukaniu po charAt już sugeruje, że coś jest nie tak. Zobacz jak się czyta pliki w najprostszy sposób:

https://javastart.pl/baza-wiedzy/darmowy-kurs-java/podstawy-jezyka/zapis-i-odczyt-z-plikow

komentarz 28 października 2018 przez ILikeJava Obywatel (1,230 p.)

Struktura pliku wygląda tak: 

author""/recipient""/date"28-10-2018"/time"15-8-19"/topic"topic"/content"<html dir="ltr"><head></head><body contenteditable="true"><p>content</p></body></html>"

Chodzi o to,że jeśli chcę pobrać authora to readAuthor() pobiera cały plik i szuka w nim ciągu 

author"

i gdy będzie " to ma zakończyć wczytywanie. Klasa MaReader i MaWriter testowałem osobno i normalnie zapisują i odczytują to co chcę. Jest tylko problem z polem content bo tab HTMLEditor sam wrzuca swoje apostofy więc to jest do dopracowana.

komentarz 28 października 2018 przez mbabane Szeryf (79,260 p.)

Radziłbym Ci popracować nad zmianą sposobu odczytu danych z pliku.

Jednak skoro ona działa, to powiedz mi czy to:

System.out.println(maReader.readContent());

wyświetla to co oczekujesz?

tzn. to?

<html dir="ltr"><head></head><body contenteditable="true"><p>content</p></body></html>

 

A samą strukturę pliku może zmień tak:

author:Jan Kowlaski
recipient:Andrzej Nowak
date:28-10-2018
time:15-8-19
topic:topic
content:<html dir="ltr"><head></head><body contenteditable="true"><p>content</p></body></html>"

Wtedy odczyt możesz realizować na zasadzie jak poniżej:

File file = new File("file.txt");

final String AUTHOR_LABEL = "author";

String author = null;
 try (Scanner sc = new Scanner(file))
{
      String[] line = sc.nextLine().split(":");

      if (line[0].equals(AUTHOR_LABEL) )
      {
            author = line[1];
      }
}
catch (FileNotFoundException e)
{
    System.out.println("Bład");
}

System.out.println(author); //Wydrukuje Jan Kowalski

 

komentarz 28 października 2018 przez ILikeJava Obywatel (1,230 p.)
System.out.println(maReader.readContent()); robi to co chcę ale wyświetla <html dir= więc to wina algorytmu odczytującego z pliku. Dodam jeszcze, że System.out.print() drukuję wszystkie 4 parametry (author, recipient, topic, content) gdy plik zostanie stworzony przez program gdzie mam same klasy MaReader i MaWriter. Gdy stworzę plik w głównym programie to odczytuje poprawnie się tylko topic i content tyle że błędnie.
komentarz 28 października 2018 przez mbabane Szeryf (79,260 p.)

Nie, chyba nie rozumiem w szczególności tego:

 Gdy stworzę plik w głównym programie to odczytuje poprawnie się tylko topic i content tyle że błędnie

Wgraj program normalnie na github żeby można było go sobie pobrać i odpalić, bo niestety za bardzo nie rozumiem o co chodzi. Ewentualnie zrób screeny z przepływu i je opisz (jeśli zdecydujesz się na tę opcję to wgraj screeny tu: https://imgur.com, i podaj do nich linki).

komentarz 28 października 2018 przez ILikeJava Obywatel (1,230 p.)
komentarz 28 października 2018 przez ILikeJava Obywatel (1,230 p.)
Ojoj... ale namieszałem. Już wszytko działa. Zrobiłem filtr w algorytmi zapisującym w pliku nie i zapomniałe o tym a patrzyłem się na to kilka razy. Przepraszam za zamieszanie. :/
komentarz 28 października 2018 przez mbabane Szeryf (79,260 p.)
To znaczy działa tak?
komentarz 28 października 2018 przez ILikeJava Obywatel (1,230 p.)
Tak tak

Podobne pytania

0 głosów
1 odpowiedź 377 wizyt
pytanie zadane 29 grudnia 2018 w Java przez ILikeJava Obywatel (1,230 p.)
+1 głos
1 odpowiedź 542 wizyt
pytanie zadane 27 lipca 2022 w Java przez michal441599 Użytkownik (530 p.)
0 głosów
2 odpowiedzi 2,197 wizyt
pytanie zadane 14 września 2017 w Java przez Niczit Nowicjusz (240 p.)

93,743 zapytań

142,683 odpowiedzi

323,301 komentarzy

63,330 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...