Importieren einer Textdatei

Serano11

Mitglied
Hallo,

"Erstellen Sie im Paket „data“ eine neue Textdatei „shippingCosts.csv“ (diese Datei bitte nicht abgeben), die folgenden Inhalt hat (alles steht in einer Zeile): 3.89;4.39;5.99;7.99;14.99 Erstellen Sie im Paket „data“ eine neue Klasse „Importer“ mit folgender Methode: public List<Double> importShippingCosts() {} Die Methode muss die Werte aus der oben erstellten csv-Datei einlesen und als Liste von Double-Werten zurückgeben können."

Wie importiert man eine Textdatei in Java? Ich habe die Datei mit "shippingCosts.csv" erstellt und den Inhalt eingefügt, auch im Paket "data" die Klasse "Importer" erstellt. Nun weiß ich aber nicht mehr weiter. Ich habe folgendes aus dem Internet ( für die Aufgabe suchend ) gefunden aber ich vermute es ist falsch.


Code:
package data;

import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;


public class Importer {

    public List<Double> importText() {

        File file = new File("C:\\Users\");
        BufferedInputStream bis = null;
        DataInputStream dis = null;

        try {
            fis = new FileInputStream(file);

            // Here BufferedInputStream is added for fast reading.
            bis = new BufferedInputStream(fis);
            dis = new DataInputStream(bis);

            // dis.available() returns 0 if the file does not have more lines.
            while (dis.available() != 0) {

                // this statement reads the line from the file and print it to
                // the console.
                System.out.println(dis.readLine());
            }

            // dispose all the resources after using them.
            fis.close();
            bis.close();
            dis.close();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

Es hat keine return Anweisung, die ich benötige?

Würde mich sehr auf Hilfe freuen.

Edit: Ich bin mir nicht sicher, ob diese Aufgabe noch zu Anfänger gehört aber da ich noch Anfänger bin, habe ich es hier erstellt. Ich entschuldige mich, wenn es falsch ist!
 
Wenn ich dir einen Tipp geben darf: Verwirf das was du Copy&Pasted hast und fang noch mal an dich einzulesen damit du auch verstehst was da passiert. Ich habe nämlich nicht dass Gefühl das du diesen Code ansatzweise verstehst..

Grundsätzlich gibt es verschiedene Herangehensweisen Textdatei einzulesen. Ich favorisieren für Anfänger immer die Scanner Klasse.
Relevante Methode wären bspw für dich: hasNextDouble() und nextDouble().

File file = new File("C:\\Users\");
Hier muss der Pfad zur Textdatei hin (inkl. Dateiname und Dateiendung.)
 
Du musst die eingelesene Zeile zuerst am ";" splitten, dann die einzelnen Teile mit Double.parseDouble in eine double-Zahl umwandeln, diese einer List<Double> hinzufügen und diese List dann via return zurückgeben.
 

Neue Themen


Zurück
Oben