CodeGym
Aktion
CodeGym University
Lernen
Kurs
Aufgaben
Umfragen & Quizze
Spiele
Hilfe
Zeitplan für einen Tritt in den Hintern
Community
Benutzer
Forum
Chat
Artikel
Erfolgsstorys
Aktivität
Rezensionen
Abonnements
Helles Design
Frage
  • Rezensionen
  • Über uns
Start
Jetzt lernen
Jetzt lernen
  • Alle Fragen
hidden #10625598
Level 23
  • 15.07.2020
  • 309Aufrufe
  • 1Kommentar

kann mir hier jemand einen rat geben?

Frage zur Aufgabe Eigenschaften
Java Core,  Level 10,  Lektion 2
In der Diskussion


Lies in der Methode fillInPropertiesMap einen Dateinamen von der Konsole und fülle die properties-Map mit Daten aus der Datei.
Mehr über .properties findest du hier: http://en.wikipedia.org/wiki/.properties
Implementiere die Logik für die Dateieingabe/-ausgabe für die properties-Map.

Anforderungen:
  • Die fillInPropertiesMap-Methode muss Daten von der Konsole lesen.
  • Die fillInPropertiesMap-Methode muss einen FileInputStream erstellen und die gelesene Zeichenkette als Parameter übergeben.
  • Die fillInPropertiesMap-Methode muss die load-Methode aufrufen und den neu erstellten FileInputStream als Parameter übergeben.
  • Die save-Methode muss die properties-Map im als Parameter übergebenen OutputStream-Objekt speichern.
  • Die load-Methode muss den Zustand der properties-Map aus dem als Parameter übergebenen InputStream-Objekt wiederherstellen.
package de.codegym.task.task20.task2003; import java.io.*; import java.util.*; /* Eigenschaften */ public class Solution { public static Map<String, String> properties = new HashMap<>(); public void fillInPropertiesMap() throws IOException { // Implementiere diese Methode BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); File yourFile = new File(reader.readLine()); OutputStream outputStream = new FileOutputStream(yourFile); InputStream inputStream = new FileInputStream(yourFile); while(inputStream.available() > 0){ String text = yourFile.toString(); String[] string = text.split("\\s+"); properties.put(string[0], string[1]); } properties.save(outputStream); outputStream.flush(); } public void save(OutputStream outputStream) throws Exception { // Implementiere diese Methode PrintWriter pw = new PrintWriter(outputStream); String exist = properties != null ? "ja" : "nein"; pw.println(exist); for(Map.Entry<String, String> pair : properties.entrySet()){ pw.println(pair.getKey()); pw.println(pair.getValue()); } pw.flush(); pw.close(); } public void load(InputStream inputStream) throws Exception, IOException { // Implementiere diese Methode BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); String exist = reader.readLine(); if(exist.equals("ja")){ while(reader.ready()){ String key = reader.readLine(); String value = reader.readLine(); properties.put(key, value); } } reader.close(); } public static void main(String[] args) { } }
0
Kommentare (1)
  • Beliebt
  • Neu
  • Alt
Du musst angemeldet sein, um einen Kommentar schreiben zu können
dnlklnhfr
Level 30 , Karlsruhe, Germany
15 Juli 2020, 16:22
phew .. wo fang ich da an? ;) du machst dir tatsaechlich enorm viel unnoetige Arbeit - ich versuchs mal auf einzelne Punkte zu reduzieren: 1. in fillInPropertiesMap() musst du nur den Dateinamen von der console lesen und damit dann einen neuen FileInputstream erzeugen - mehr nicht (siehe requirements). Das sind 4 Zeilen Code. 2. fillInPropertiesMap() muss load() aufrufen (siehe requirements) - dieser Aufruf fehlt 3. load() muss nichts von der Console lesen, tuts hier aber. 4. load() muss nur aus dem uebergebenen inputStream Properties laden (wie das geht: google mal "java properties", erster Treffer von oracle) und damit die properties-map fuellen. 5. save() macht dann das Gegenteil. Nimm die properties-map und schreibe Eintrag fuer Eintrag in ein Properties-Object und speichere das in den outputStream. (Ebenfalls in den Oracle-Docs zu finden) Warum dein Code von Codegym nicht mal validiert wird liegt an Zeile 49. Du versuchst aus einem InputStream eine Zeile zu lesen .... warum das nicht klappen kann, darfst du selbst googlen :)
0
Lernen
  • Registrierung
  • Java-Kurs
  • Hilfe zu Aufgaben
  • Preise
  • Spieleprojekte
  • Java Syntax
Community
  • Benutzer
  • Artikel
  • Forum
  • Chat
  • Erfolgsstorys
  • Aktivität
  • Affiliate Program
Unternehmen
  • Über uns
  • Kontakt
  • Rezensionen
  • Medien
  • CodeGym im Bildungsbereich
  • FAQ
  • Support
CodeGym CodeGym ist ein Java-Tutorial zum Lernen von Java von Grund auf. Dieser Kurs ist perfekt dafür geeignet, Java von Beginn an zu meistern. Er enthält über 1200 Aufgaben mit Sofortüberprüfung und grundlegende Theorie zu den Java-Grundlagen. Damit auch du bei deinem Kurs erfolgreich bist, haben wir eine ganze Reihe motivierender Inhalte: Quizfragen, Programmierprojekte, Inhalte zu effizientem Lernen und zum Berufseinstieg als Java-Entwickler.
Folgen
Sprache der Oberfläche
Programmierer werden gemacht, nicht geboren © 2023 CodeGym
MastercardVisa
Programmierer werden gemacht, nicht geboren © 2023 CodeGym
This website uses cookies to provide you with personalized service. By using this website, you agree to our use of cookies. If you require more details, please read our Terms and Policy.