Hallo,
erst mal kriege ich eine Exception: ArrayIndexOutOfBounds, auch wenn ich 100 000 Arrays erstelle. ???:L
Die zweite Frage kommt gleich; erst mal der Code:
Code:
import java.io.File;
public class FileInfo {
public static void main(String[] arg_dat) {
//File-Objekt erzeugen
File datei= new File(arg_dat[0]);
//Array für Verzeichnisliste
String [] liste = new String [255];
if (datei.exists() && datei.isFile())
{
System.out.println(arg_dat[0]+" ist Datei.");
System.out.println("kmpl. Pfad: "+datei.getAbsolutePath());
System.out.println("Datei: "+datei.getName());
System.out.println("Leserecht: "+datei.canRead());
System.out.println("Schreibrecht: "+datei.canWrite());
}
else
{
if(datei.exists() && datei.isDirectory())
{
System.out.println(arg_dat[0]+" ist Directory.");
//Verz.-Eintrage lesen liste zuweisen
liste= datei.list();
//Liste ausgeben
for (int i=0; i < liste.length; i++)
System.out.println(liste[i]);
}
else
{
System.out.println(arg_dat[0]+" nicht gefunden");
}
}
}
}
Was will man mit arg_dat[0] bezwecken?
Ich hoffe ihr könnt mir helfen. Das Beispiel habe ich aus einem Buch.
ahja...
wieder das java einsteigerseminaar vom niemann, wa?
hihi
arg_dat ist wie du siehst ein string array, arg_dat[0] ist damit das erste element. da ssolltest du eigentlich wissen wenn du das buch gelesen hast
und die arrayindexOutOfBounds bekommst du, weil du dein programm ohne parameter aufrufst, und arg_dat[0] somit ausserhalb der array grenzen liegt, weil es kein array gibt.
soweit ich mich zurückerinnern kann stand in dem buch auch immer wie man die programme aufruft, und screenshots waren auch drin
viel spaß noch
edit: mannoo schon wieder nur zweiter, Tobias hör damit auf :noe: :bae:
Da aber arg_dat[0] nicht initialisiert worden ist, hat mich das sehr verwirrt.
und die arrayindexOutOfBounds bekommst du, weil du dein programm ohne parameter aufrufst, und arg_dat[0] somit ausserhalb der array grenzen liegt, weil es kein array gibt.
naja schon was her dass ich das buch gelesen hab, kann mich nicht dran erinnern ???:L
zum array:
wenn ein array initialisiert wird ( Type[] arr = new Type[10]; ) dann gibt es in dem element zwar 10 verweise, aber die stehen alle auf null. wenn du arr[10] aurufen willst geht es nicht weil das array so groß nicht ist, dann kommt ne indexoufofbounds.
wie man in JBuilder beim starten des progs parameter übergtibt? hmm...weiß ich jetzt nicht auf anhib, aber da gibts sicher irgendwo einen einstellungsdialog zum programmstart, ansonsten initialisier das array halt in deinem prog selbst.
Das ist nur dann von nöten, wenn du eben keinen Parameter an das Programm übergibst. Besser wäre es natürlich, gleich abzufangen, ob Parameter übergeben wurden und wenn nicht explizit nachfragen oder einen Standardwert nehmen.
Ei klar benutz ich JBuilder! Mußt du die Startkonfigurationen aufrufen und dort bei Programmparameter den Namen deines Files bzw Verzeichnises hinschreiben. Und schon klappt es wie gewollt...