Übergabe mehrer Files an selbstprogrammieren Parser

MichaFL123

Mitglied
Hallo liebe Java-Freunde,

ich soll ein Tool programmieren, welches Textdateien einließt und entsprechend verarbeitet dieser Parser erhält den Dateinamen als String:

Java:
		//Übergabe der Files
		public static void start(String file) throws IOException {
			
			//Setzen Zählervariable auf 0
			hcounter = 0;
			BufferedReader reader = new BufferedReader(new FileReader(file));
			
			String line;
			//Zeilenweises einlesen
			while ((line = reader.readLine()) != null ) {
				//Zerlegen in Segemente bei Trennzeichen "'".
			     String[] result = line.split("'");
			     //Durchlaufen der Segmente
			     for (int x=0; x<result.length; x++){

			         //Beginn Verarbeitung ...

Ich habe eine Oberfläche programmiert die 2 Button beinhaltet, in der man einzelne oder mehrere Dateieen auswählen kann und einließt: (später sollen alle .txt Dateien aus einem Verzeichniss eingelesen werden, ohne das man alle makieren muss)

Java:
	//Einzelne Datei öffnen
	private JMenuItem getJMenuItemDatei() {
		if (jMenuItemDatei == null) {
			jMenuItemDatei = new JMenuItem();
			jMenuItemDatei.setText("MSCONS einzeln einlesen");
			jMenuItemDatei.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					JFileChooser singleData = new JFileChooser();
					if(singleData.showOpenDialog(getParent()) != JFileChooser.APPROVE_OPTION)
						return;
					try {
						File [] files = singleData.getSelectedFiles();
						if (files != null && files.length > 0) {
							for (int i = 0; i < files.length; i++){
							filename = file[i];
							FileParser.start(filename);
					                          }
						}
						
					} catch( Exception ex) {
						//ex.printStackTrace();
					}
				}
			});
		}

Leider funktioniert das Ganze (Das Übergeben der Filenamen) nicht - kann mir da jemand helfen?

Vielen Dank im Voraus 🙂
 
Zuletzt bearbeitet:
Hallo,

ohne vollständigen Code kann ich weder debuggen noch einen eigenen Test durchführen. Ich tue mir so etwas schwer mit der Aussage: "Leider funktioniert das Ganze nicht"

So die Frage, was funktioniert nicht?
 
Soo hab jetzt noch den Rest-Code angefügt(nur von der ActionPerformed-Methode).

Der Parser funktiert soweit es hapert nur noch der Übergabe der Dateinamen.
 
wieso nennst du nicht einfach die Fehlermeldung oder das sonstige Problem direkt beim Namen,
da dürfte doch 'keine Method start(File) vorhanden' oder so kommen,

selbst wenn du selber das nicht verstehst könnten andere dann viel schneller helfen
ansonsten muss man das so sehen,

File vs String also, keine Idee dazu?
Java:
FileParser.start(filename.getAbsolutePath()); // filename schlechter Variablenname für ein File-Objekt
 
Mir eure Lösungsansätze zur Herzen genommen und jetzt folgenden Code implementiert mit dem es funktioniert:

Java:
	private JMenuItem getJMenuItemVerzeich() {
		if (jMenuItemVerzeich == null) {
			jMenuItemVerzeich = new JMenuItem();
			jMenuItemVerzeich.setText("Alle MSCONS im Verzeichniss einlesen");
			jMenuItemVerzeich
					.addActionListener(new java.awt.event.ActionListener() {
						public void actionPerformed(java.awt.event.ActionEvent e) {
							JFileChooser multiData = new JFileChooser();
							multiData.setFileSelectionMode(JFileChooser.FILES_ONLY);
							multiData.setMultiSelectionEnabled(true);
							multiData.setFileFilter(new FileFilter() {
								@Override
								public boolean accept(File f) {
									return f.isDirectory()
											|| f.getName().toLowerCase()
													.endsWith(".txt");
								}

								@Override
								public String getDescription() {
									return "*.txt";
								}
							});
							if (multiData.showOpenDialog(getParent()) != JFileChooser.APPROVE_OPTION)
								return;
							try {
								File[] files = multiData.getSelectedFiles();
								if (files != null && files.length > 0) {
									for (int i = 0; i < files.length; i++) {
										FileParser.start(files[i]
												.getAbsolutePath());
									}
								}
							} catch (Exception ex) {
								ex.printStackTrace();
							}
						}
					});

Vielen Dank für eure Hilfe 🙂
 

Neue Themen


Zurück
Oben