1Danke
ERLEDIGT
JA
JA
ANTWORTEN
12
12
ZUGRIFFE
267
267
EMPFEHLEN
-
Moin
,
Folgendes problem:
Klassen
Methoden
Ich habe eine Klasse erstellt namens ReadFromFile die eine Methode lesen() enthält. Diese Methode lesen() erhält den pfad eine Textdatei und :
- Liest sie zeilenweise ein
- Speichert die zeilen in ein ArrayList
Jetzt will ich dass diese Methode die Textdateien Splittet und zwar immer bei ",".
Diese Klasse ist ein teil von mehreren und dient als kleine aufgabe in mein Praktikum, wäre ich also sehr dankbar wenn ihr mir helfen könnt.
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
import java.io.*; import java.util.ArrayList; public class ReadFromFile{ public static void lesen(String dateiname) throws IOException, RowsExceededException, WriteException{ String line = ""; ArrayList<String> listA = new ArrayList<String>(); try { File file = new File(dateiname); FileReader fr = new FileReader(file); //BufferedReader erstellen und mit FileReader verknüpfen BufferedReader br = new BufferedReader(fr); //Solange zeilen zum ArrayList adden bis ende for(int i = 0;(line = br.readLine())!=null ;i++){ //Hier soll die Splitt() Methode implimentiert werden nur das ****t schonmal nicht // // listA.add(line.Splitt("//,"); System.out.println(listA.get(i)); } //Fehlermeldung falls Datei nicht vorhanden }catch (FileNotFoundException e) { System.out.println("File not found"); } } usw..
Geändert von Tis (10.09.10 um 11:05 Uhr)
-
10.09.10 10:53 #2
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hallo,
du willst also quasi die Datei auslesen und anstatt an dem Zeilenumbruch an dem Kommata getrennt zurückgeben?
Die einfachste Methode wäre, die ArrayList aus String[] bestehen zu lassen, das wären nur vier weitere Zeichen bei dir:
Somit wäre jedes Element in deiner ArrayList ein String[], welches die Teile an Hand der Kommata getrennt enthält.
Gruß
BKÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
Hallo ,
Es ist so das Diese Textdateien informationen erhalten und zb so aussehen:
Code :1 2 3 4 5 6
ChangeFormType,Formtyp ändern Loading,Laden Show,Anzeigen Hide,Verstecken NoClassification,Keine Klassifikationen Missing,Fehlend
Diese information muss ich spaltenweise in Excel speichern , ich schaffe es ein Text momentan in excel zu speichern nur muss halt den Text bei "," trennen damit ich es zelle a bzw b zuweisen kann
Also muss da ein Splitter hin oder nicht?
GrußGeändert von Tis (10.09.10 um 11:02 Uhr)
-
10.09.10 11:07 #4
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hallo,
so wie ich es oben geschrieben habe sollte es funktionieren.
Mit dem Code sieht die ArrayList dann in etwa so aus:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
[0] => { [0] = "ChangeFormType", [1] = "Formtyp ändern" }, [1] => { [0] = "Loading", [1] = "Laden" } Das heißt: listA.get(0)[0] = "ChangeFormType" listA.get(0)[1] = "Formtyp ändern" listA.get(1)[0] = "Loading" listA.get(1)[1] = "Laden"
Diese Struktur spiegelt die für Excel benötigte Form ziemlich exakt wieder.
Gruß
BKÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
Hallo,
Danke dir bratkartoffel obwohl ich so ein bisschien hunger habe wegen dein Namen ;D
ich gucks mir nochmal an , aber dir ist schon klar dass das ganze automatisch ablaufen soll und nicht per hand
also mit den bufferedreader etc
Ich weiss jetzt nicht genau wie ich die lines vom bufferedreader zum array adden soll
GrußGeändert von Tis (10.09.10 um 11:28 Uhr)
-
Hallo ,
Kann mir den keiner sagen wie ich den ArrayList String [] mit füllen soll?
gruß
-
10.09.10 12:13 #7
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hallo,
du hast es ja eh schon mehr oder weniger im Code stehen, nur auskommentiert:
Code java:1 2
// Hier soll die Splitt() Methode implimentiert werden nur das ****t schonmal nich listA.add(line.split(",");
Details zur Methode "split()": In der Java-API
Gruß
BKÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
Hallo,
es ist echt zum .. Was funktioniert hier nur nicht****
ich will einfach nur bei komma splitten, so das der text nicht nur bei zeilenumbruch sondern auch bei "," ein eigenen index im arraylist hat
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
try { File file = new File(dateiname); FileReader fr = new FileReader(file); //BufferedReader erstellen und mit FileReader verknüpfen BufferedReader br = new BufferedReader(fr); //Solange zeilen zum ArrayList adden bis ende for(int i = 0;(line = br.readLine())!=null ;i++){ // WAS IST HIER BEI SPLITT NUR FALSCH? er zeigt die kommas immer noch im text listA.add(line.Splitt("//,"); System.out.println(listA.get(i)); } //Fehlermeldung falls Datei nicht vorhanden }catch (FileNotFoundException e) { System.out.println("File not found"); }
Gruß
-
10.09.10 12:46 #9
Moin,
es muss IMHO statt
Code java:1
Splitt("//,")
Code java:1
Split("\\,") // nur ein 't' und Backslashes !
heißen
Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
10.09.10 12:48 #10
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hallo,
nur die Ruhe, beim Programmieren braucht man viel Geduld
Wusse nicht, dass du nur ein eindimensionales ArrayList haben wolltest, folgendes sollte funktionieren (ist aber ungetestet; hab hier grad kein Java zur Hand)
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
ArrayList<String> elemente = new ArrayList<String>(); try { File file = new File(dateiname); FileReader fr = new FileReader(file); // BufferedReader erstellen und mit FileReader verknüpfen BufferedReader br = new BufferedReader(fr); // Erst einmal die Datei zeilenweise auslesen. // Die jeweils aktuelle Zeile wird in "zeile" gespeichert. String zeile = null; while((zeile = br.readLine()) != null) { // Die Zeile in die einzelnen Felder aufteilen. // In "spalten" stehen alle Felder der Zeile, getrennt an Hand eines Kommatas String[] spalten = zeile.split(","); // Hier werden alle Felder der aktuellen Zeile durchgelaufen und // in der List gespeichert. for(String aktSpalte : spalten) { elemente.add(aktSpalte); } // Ende Felder in Liste speichern } // Ende zeilenweise Lesen } catch (IOException e) { e.printStackTrace(); } // Ende catch-Block für Datei einlesen /* Hier hast du in "elemente" nun alle Felder der Datei stehen und kannst damit weiterarbeiten */
// Edit:
Das "Split" gehört kleingeschrieben und die Backslashes komplett raus. Komma hat bei einem RegEx keine weitere Bedeutung und wird als normales Zeichen angenommen.
=> split(",");
Gruß
BKGeändert von Bratkartoffel (10.09.10 um 12:52 Uhr)
Über eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
10.09.10 12:48 #11Elmu Tutorials.de Gastzugang
java.util.StringTokenzier st = new java.util.StringTokenuzer(line, ",");
while(st.hasMoreTokens() ) {
list.add(st.nextToken());
}
Der trennt den String immer beim ',' ab und das Zeichen wird auch nich mehr mit übergeben.
-
10.09.10 12:51 #12Elmu Tutorials.de Gastzugang
In der ersten Zeile hab ich nen Fehler reingebaut... es muss natürlich
java.util.StringTokenzier st = new java.util.StringTokenizer(line, ",");
heißen.
-
10.09.10 13:05 #13
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hi Elmu,
ob man es nun mit dem StrongTokenizer macht, oder per split ist meiner Meinung nach Geschmackssache. Deine Aussage, dass das Trennzeichen nicht mit übergeben wird trifft auch auf die String.split() zu, hier wird das Trennzeichen auch aus dem Ergebnis gelöscht.
Gruß
BKÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"





Zitieren


Login





