Zapis zmiennej String do pliku.

0

Cześć,

Zacznę może od przykładu - chciałbym zapisać nazwę zmiennej i jej wartość do pliku, aby później móc po nią sięgnąć metodą w stylu getString(””).
Tworze String wiadomosc1 = „Tak albo nie”;
I teraz zapisuje ją do pliku który przechowuje nazwę zmiennej i jej wartość. No i tutaj kłopot jak to zrobić żeby to odpowiednio zapisać a później abym mógł po nazwie zmiennej odczytać wartość.
Utworzenie pliku, zapis do pliku i odczyt wybranej lini potrafię napisać.

0

Ale jeżeli chcę przechować dane na dłużej, to muszę je zapisać do pliku tak?

1

To zależy co masz na myśli mówiąc "na dłużej" :P A taką mapę można zapisać do pliku za jednym zamachem nie rozdrabniając się na rekordy https://docs.oracle.com/javase/7/docs/api/java/io/ObjectOutputStream.html

1
Radosław Artur Smoliński napisał(a):

Ale jeżeli chcę przechować dane na dłużej, to muszę je zapisać do pliku tak?

Jeśli potrzebujesz asocjacji klucz -> wartość lub klucz -> lista wartości, to możesz zastanowić się nad przechowywaniem ich w mapie i jeśli chcesz potem taką mapę wczytać z dysku bądź zapisać na dysk, to możesz zastanowić się czy najłatwiejszym rozwiązaniem nie jest seralizacja i deserializacja do JSONa: https://www.baeldung.com/jackson-map. Żeby zapisać Stringi na dysku w pliku możesz użyć np. nio.Files (https://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html - java.nio.file.Files.write(Paths.get(...), "Ala ma kota!".getBytes("utf-8"), StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING)) :-)

1

Możesz też zapisać w jakimś bardziej ludzkim formacie np. YAML'u, który służy do odczytywania i zapisywania plików konfiguracyjnych:

Yaml yaml = new Yaml();
    try(InputStream in = Files.newInputStream("plik.yaml") {
      Configuration config = yaml.loadAs(in, Configuration.class);
      System.out.println(config.getZmienna());
    } catch (IOException e) {
      e.printStackTrace();
    }

Musisz do tego dorobić klasę z geterami i seterami:

public final class Configuration {
  private String zmienna;

  public String getZmienna() {
    return version;
  }

  public void setZmienna(String zmienna) {
    this.zmienna = zmienna;
  }
}

Twój plik to:

zmienna: "wartość Twojej zmiennej"

Biblioteka, która to robi to snakeyaml, więc dodajesz zależność:

<dependency>
    <groupId>org.yaml</groupId>
    <artifactId>snakeyaml</artifactId>
    <version>1.23</version>            
</dependency>
0

Dzięki wszystkim za pomoc :) Pewne porady nie na mój poziom, ale kiedyś do tego dojdę hehe. Chyba opcja z yaml jest mi najbardziej znana z zabawy w mc :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1