Input/Output Verständnisfrage Verzeichnis-/Dateiliste erstellen & Dateikonvertierung

DerBlaue

Neues Mitglied
Hallo zusammen,

ich bin neu im Forum und fange gerade an Java zu lernen. Ich brüte gerade über der Lösung einer Aufgabe, die darin besteht, die eine Liste aller Dateien sowie Verzeichnisse des angegebenen Verzeichnisses(bzw. des aktuellen Verzeichnisses, wenn keines angegeben ist) sowie der Dateien und Verzeichnisse aller Unterverzeichnisse zu erstellen. Die genaue Aufgabenstellung findet sich hier:
http://swtsrv01.cs.hs-rm.de/LectureNotes/work/lecturenotes-exercises-blatt11-1.pdf

Dabei sollen die verwendeten Methoden sich nacheinander aufrufen. Außerdem soll eine Datei eingelesen werden und in ein anderes Format umgewandelt werden. Der nachfolgend gezeigte Code müsste eigentlich funktionieren, da das Programm auf einem anderen System schon mal lief. Wenn ich den Code ausführe erhalte ich allerdings folgende Meldung:

java.lang.ArrayIndexOutOfBoundsException: 0

Weiß jemand, wo der Fehler liegt? Btw, ich verwende ein Windows-System mit Eclipse.

Wichtiger noch wäre mir allerdings den hier gezeigten Code einmal selbst nachvollziehen zu können.
Ich habe den Code nicht selbst geschrieben und habe leider einige Verständnisprobleme. Vielleicht kann mir jemand einen Schubs in die richtige Richtung geben?:oops:

Ich poste nachfolgend mal den vollständigen Code und stelle einfach mal meine Fragen.

Java:
import java.util.*;
import java.io.*;

public class FileList {

	public static List<File> getFileList()
	throws IOException {
		return getFileList(".");
	}

Wofür stehen die Anführungszeichen mit dem Punkt in der Returnanweisung? Ich habe mir sagen lassen, dass hiermit die nachfolgende Methode aufgerufen wird, aber wieso eigentlich?

Java:
public static List<File> getFileList(String fileName)
	throws IOException {
	return getFileList(new File(fileName));
	}

Wozu wird hier der Parameter fileName vom Stringtyp übergeben? In der Reurnanweisung soll die nun folgende Methode aufgerufen werden, aber wofür steht eigentlich getFileList(new File(fileName));?

Java:
public static List<File> getFileList(File startFile)
throws IOException {
	return getFileList(startFile, new ArrayList<File>());

Hier wieder die Frage wofür der Parameter startFile vom Filetyp übergeben wird. Und wozu habei ich in der Returnanweisung startFile, new ArrayList<File>());?

Java:
//Recursively add current files to result list
}
public static List<File> getFileList(File startFile, List<File> result)
	throws IOException {
	
	if (!startFile.isDirectory()) throw new IOException();
	
	result.add(startFile);
	
	result.add (startFile);
		for (File f: startFile.listFiles()) {
			if (f.getName().equals("..")) continue; //not needed according to docs
			if (f.isFile()) result.add(f);
			else 			result = getFileList(f, result);
		}
		return result;
		}

Wie obiger Abschnitt funktioniert kann ich gar nicht sagen;(
Nun kommt noch die Dateikonvertierungsmethode

Java:
 static void convert(String inFile, String outFile, String inEnc, String outEnc)
		throws Exception {
			Reader in = new BufferedReader(new InputStreamReader(new FileInputStream(inFile), inEnc));
			Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), outEnc));
			int c=0;
			do {
				c = in.read();out.write((char)c);
			} while (c>0);
				
			in.close();
			out.close();		
		}

Kapier ich auch ned.:bahnhof:
Und schließlich zum Abschluss die Mainmethode

Java:
public static void main(String[] args) {
		try {
			for (File f: getFileList(args[0])) System.out.println(f);
			convert("C:/Users/Thomas/Workspace/Übungsblatt11/src/FileList.java", "test.java", "utf-8", "utf-16");
			
		}
		catch(IOException ex) {
			System.out.println (ex.toString());
			System.out.println("Not a directory: " + args[0]);
		}
		catch(Exception ex) {
			System.out.println(ex.toString());
			System.out.println("convert failure!");
		}
	}
}
Damit wäre das Programm dann abgeschlossen.


Zum letzten Abschnitt habe ich dann auch noch Fragen. Ich nehme an, mit dem Codeabschnitt
Java:
for(File F: getFileList(args[0])) System.out.prinln(f);
wird die erste Methode
Java:
List<File> getFileList()
aufgerufen. Aber wie genau funktioniert der Methodenaufruf?

Wie funktioniert der Methodenaufruf
Java:
convert("C:/Users/Thomas/Workspace/Übungsblatt11/src/FileList.java", "test.java", "utf-8", "utf-16");
und warum erhalte ich folgende Fehlermeldung beim Programmaufruf:

"convert failure!"
java.lang.ArrayIndexOutOfBoundsException: 0

Ich weiss, dass sind eine Menge Fragen aber ich komme hier gerade echt nicht weiter. Bin noch blutiger Anfänger was Programmieren angeht. Aber die von mir im im 1. Sem. im IT-Studium zu bearbeitenden Aufgaben sind kann ich mir leider nicht aussuchen. Wisst Ihr vielleicht Rat, in welches Thema ich mich am besten als erstes einlese, wenn ich das hier alles nachvollziehen möchte und welche Quellen ich verwenden könnte? Das Skript meines Professors hilft mir leider hier nicht weiter und ich habe auch schon einiges in verschiedenen JAVA-Büchern gelesen. Zum Thema Read the ****ing manual::rtfm: Ich scheue mich nicht davor, Zeit und Energie zu investieren und mich selbst einzulesen, aber bitte seht es mir nach, dass ich hier dennoch eine ganze Menge Fragen stelle.

Vielen Dank im voraus!
 
Zuletzt bearbeitet:

VfL_Freak

Top Contributor
Moin,

mit welchen Argumenten rufst Du das Programm denn auf ???:L

Falls ohne (was ich befürchte), wäre natürlich das Array "args" leer !!
Ergo: MIT Parametern aufrufen oder vor der for-Schleife über die Länge prüfen, ob es überhaupt gefüllt ist ...

Gruß
Klaus
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
A Verständnisfrage Java Basics - Anfänger-Themen 12
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
P Verständnisfrage: PageFactory.initElements Java Basics - Anfänger-Themen 2
R do while Schleife Verständnisfrage Java Basics - Anfänger-Themen 2
G while.next() Verständnisfrage Java Basics - Anfänger-Themen 16
Vivien Kurze Verständnisfrage zu Java Point aus java.awt.* Java Basics - Anfänger-Themen 5
C Erste Schritte Anfänger Verständnisfrage zum Compiler Java Basics - Anfänger-Themen 31
T Verständnisfrage Objekt Getter Setter Java Basics - Anfänger-Themen 102
K Verständnisfrage Server/Client BufferedReader, PrintWriter Java Basics - Anfänger-Themen 2
Der Grütz Verständnisfrage zu Übung aus Java Kurs - Schaltjahr bestimmen Java Basics - Anfänger-Themen 2
J Verständnisfrage zu throws neben Funktionen Java Basics - Anfänger-Themen 2
TimoN11 Verständnisfrage bei Aufgabe Java Basics - Anfänger-Themen 2
P Verständnisfrage zum Mapping Java Basics - Anfänger-Themen 3
M Java Version Verständnisfrage Java Basics - Anfänger-Themen 16
M Verständnisfrage zu eine Online Aufgabe Java Basics - Anfänger-Themen 7
T Verständnisfrage zur Konsolenausgabe Java Basics - Anfänger-Themen 2
M Verständnisfrage zu Generics Java Basics - Anfänger-Themen 7
D Verständnisfrage zur Modellierung einer HDD Java Basics - Anfänger-Themen 17
W Methoden Verständnisfrage Vererbung von Methoden Java Basics - Anfänger-Themen 14
S Verständnisfrage lokale Ordnerpfade Java Basics - Anfänger-Themen 1
T Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 7
J Java Starthilfe Verständnisfrage Aufgabe Java Basics - Anfänger-Themen 2
O Anfänger, Verständnisfrage Java Basics - Anfänger-Themen 3
C Verständnisfrage zu Modulo Java Basics - Anfänger-Themen 6
C Verständnisfrage bezüglich der Do-While Schleife Java Basics - Anfänger-Themen 9
L Verständnisfrage - Speicherabbild Java Basics - Anfänger-Themen 4
melly_ Verständnisfrage zu args Java Basics - Anfänger-Themen 3
A Variablen Verständnisfrage bzgl. Variablen/Referenzen Java Basics - Anfänger-Themen 3
K Verständnisfrage eines Abschnitts Java Basics - Anfänger-Themen 6
K Rekursion Verständnisfrage Java Basics - Anfänger-Themen 19
S Modell View Controller Verständnisfrage Java Basics - Anfänger-Themen 24
J Superklassen Konstruktor Verständnisfrage Java Basics - Anfänger-Themen 1
JavaTalksToMe Erste Schritte Println-Frage (Verständnisfrage) Java Basics - Anfänger-Themen 1
R Verständnisfrage zu Objekten u. Übergabeparameter Java Basics - Anfänger-Themen 8
G Collections Verständnisfrage zur For-Each-Schleife Java Basics - Anfänger-Themen 7
b1ck Interface Verständnisfrage zum GUI mit "swing" Java Basics - Anfänger-Themen 1
kilopack15 Verständnisfrage zur Verwendung von notify() bei Threads Java Basics - Anfänger-Themen 2
G Verständnisfrage zu for-each Java Basics - Anfänger-Themen 4
DontFeedTheTroll Erste Schritte Verständnisfrage zu If-Anweisung Java Basics - Anfänger-Themen 7
K Rekursion-Verständnisfrage Java Basics - Anfänger-Themen 4
J Java Server Pages - Verständnisfrage Java Basics - Anfänger-Themen 2
Z Verständnisfrage Anfängerprogramm Java Basics - Anfänger-Themen 0
T Verständnisfrage Zuweisungs-/arithmet. Operatoren Java Basics - Anfänger-Themen 2
G Methoden Verständnisfrage zur Methoden Java Basics - Anfänger-Themen 7
LionAge Kapselung, Verständnisfrage zur Objekterzeugung Java Basics - Anfänger-Themen 4
Z Verständnisfrage zum Multithreading Java Basics - Anfänger-Themen 3
R OOP / Verständnisfrage zum Konstuktor (siehe code) Java Basics - Anfänger-Themen 7
gamebreiti Verständnisfrage zu contains() Java Basics - Anfänger-Themen 10
A Verständnisfrage - Koordinatenumrechnung Java Basics - Anfänger-Themen 9
J Erste Schritte Verständnisfrage im Bezug auf das (richtige) Programmieren Java Basics - Anfänger-Themen 5
M Verständnisfrage zu JUnit Tests und private Methoden Java Basics - Anfänger-Themen 3
H Verständnisfrage Array Java Basics - Anfänger-Themen 2
I Interface Verständnisfrage Interfaces (Bsp.: Enumeration) Java Basics - Anfänger-Themen 2
I Verständnisfrage zu BridgePattern, Verwedung von super() Java Basics - Anfänger-Themen 4
P Verständnisfrage Java Basics - Anfänger-Themen 3
kaoZ Best Practice Verständnisfrage Listener bei lokalen Objekten Java Basics - Anfänger-Themen 8
S Verständnisfrage zu Anweisungen und deren Wirkung Java Basics - Anfänger-Themen 7
H Verständnisfrage für oder Anweisung Java Basics - Anfänger-Themen 8
E Threads Verständnisfrage bzgl. Threads und Sleep Java Basics - Anfänger-Themen 2
T Erste Schritte Verständnisfrage: Getter und Setter Methoden Java Basics - Anfänger-Themen 3
H Verständnisfrage zu Java-Ausgabe Java Basics - Anfänger-Themen 3
S Verständnisfrage Java Basics - Anfänger-Themen 2
N Verständnisfrage Code Java Basics - Anfänger-Themen 8
B Verständnisfrage Java Basics - Anfänger-Themen 2
H Interface Comparable Verständnisfrage Java Basics - Anfänger-Themen 6
B Verständnisfrage Codezeile Java Basics - Anfänger-Themen 7
B Verständnisfrage:Beispielprogramm BlueJ Java Basics - Anfänger-Themen 3
M Kurze Verständnisfrage zu einer Java Aufgabe Java Basics - Anfänger-Themen 12
K Erste Schritte Kleine Verständnisfrage Java Basics - Anfänger-Themen 12
R Verständnisfrage Referenzvariablen in array Java Basics - Anfänger-Themen 3
M Verständnisfrage: Objekt erzeugen u. zuweisen Java Basics - Anfänger-Themen 16
I OOP Verständnisfrage zu Singelton Pattern Java Basics - Anfänger-Themen 21
M Verständnisfrage zu JPanel Java Basics - Anfänger-Themen 3
S Verständnisfrage: Exception Gebrauch Java Basics - Anfänger-Themen 2
R Verständnisfrage NPE Java Basics - Anfänger-Themen 5
M Verständnisfrage zur Zahlenumwandlung (Dezimal-->Dual) Java Basics - Anfänger-Themen 25
P Java Objekte - Verständnisfrage Java Basics - Anfänger-Themen 9
N Verständnisfrage zu folgendem Programm Java Basics - Anfänger-Themen 2
L Grundlegende Verständnisfrage Hasmap Referenzen Java Basics - Anfänger-Themen 4
S Verständnisfrage zu Interfaces Java Basics - Anfänger-Themen 2
VfL_Freak Verständnisfrage zur Klasse "TIMER" Java Basics - Anfänger-Themen 7
P Verständnisfrage zu Instanzen/Objekten Java Basics - Anfänger-Themen 9
M Verständnisfrage im Umgang mit Map Java Basics - Anfänger-Themen 10
K Verständnisfrage zu int.length und String.length() Java Basics - Anfänger-Themen 4
G 2D Array gleichsetzen verständnisfrage Java Basics - Anfänger-Themen 2
M kleine und einfache Verständnisfrage Java Basics - Anfänger-Themen 3
N verständnisfrage java.util.Calendar Java Basics - Anfänger-Themen 4
G Datentypen bits, bytes, chars - Verständnisfrage Java Basics - Anfänger-Themen 5
E Verständnisfrage zu Shutdownhook Java Basics - Anfänger-Themen 5
D Verständnisfrage: Java und MySql Java Basics - Anfänger-Themen 3
F Rekursion Verständnisfrage Java Basics - Anfänger-Themen 6
A Exception Verständnisfrage: Exceptions während, einer Statischenzuweisung abfangen Java Basics - Anfänger-Themen 10
Z Comparator Verständnisfrage Java Basics - Anfänger-Themen 5
D Verständnisfrage zu Funktionen Java Basics - Anfänger-Themen 6
H Verständnisfrage Persistenz Java Basics - Anfänger-Themen 10
neurox Verständnisfrage zu Threads Java Basics - Anfänger-Themen 4
E Verständnisfrage Syntax: frame.getContentPane().add(button) Java Basics - Anfänger-Themen 11
Y Kleine Verständnisfrage zum Thema dynamische Polymorphie Java Basics - Anfänger-Themen 3
F Verständnisfrage Objekt instanzierung / Polymorphie Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben