Zapis zmiennej String do pliku.

Zapis zmiennej String do pliku.
RA
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 5 lat
  • Postów:8
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ć.

Potat0x
  • Rejestracja:ponad 8 lat
  • Ostatnio:14 dni
  • Postów:370
1
edytowany 1x, ostatnio: Potat0x
RA
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 5 lat
  • Postów:8
0

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

Potat0x
  • Rejestracja:ponad 8 lat
  • Ostatnio:14 dni
  • Postów:370
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

Brickcloak
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 2 lata
  • Postów:11
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)) :-)

edytowany 1x, ostatnio: Brickcloak
CS
  • Rejestracja:prawie 7 lat
  • Ostatnio:2 dni
  • Postów:296
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:

Kopiuj
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:

Kopiuj
public final class Configuration {
  private String zmienna;

  public String getZmienna() {
    return version;
  }

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

Twój plik to:

Kopiuj
zmienna: "wartość Twojej zmiennej"

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

Kopiuj
<dependency>
    <groupId>org.yaml</groupId>
    <artifactId>snakeyaml</artifactId>
    <version>1.23</version>            
</dependency>
RA
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 5 lat
  • Postów:8
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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.