Hallo,
ich verwend Greenfoot und habe folgenden Programmcode:
Bei dem oben angegebenen Code soll Java eine txt-Datei zeilenweise einlesen und die eingelesenen Zeilen in zufälliger Reihenfolge ausgeben. Wenn ich das Programm allerdings ausführe wird immer "null" ausgegeben.Könnt ihr mir helfen meinen Fehler zu finden, denn ich habe trotz intensiver Suche noch nichts gefunden.
Danke schon mal im voraus Bobo.
ich verwend Greenfoot und habe folgenden Programmcode:
Java:
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.io.*;
import javax.swing.JOptionPane;
/**
* Write a description of class generator here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class generator extends Actor
{
static String[] name_random;
static String[] name_sortiert;
static int zeilen=0;
static boolean geklappt=false;
/**
* Act - do whatever the generator wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void act()
{
String datei = JOptionPane.showInputDialog(
null, "Geben sie das Verzeichnis und die Datei an","z.B. C:\\Users\\Public\\Documents\\namen.txt");
zählen(datei);
auslesen(datei);
ausgeben();
}
public void zählen(String datei){
try {BufferedReader in = new BufferedReader(new FileReader(datei));
while (in.readLine() != null)
{
zeilen++;
}
name_random= new String[zeilen];
name_sortiert= new String[zeilen];
}
catch (FileNotFoundException e){
System.out.println("Datei nicht gefunden");
}catch (IOException e) {
e.printStackTrace();
}
}
public void auslesen(String datei){
try {int i=0;
BufferedReader in = new BufferedReader(new FileReader(datei));
String zeile = null;
while ((zeile = in.readLine()) != null) {
name_sortiert[i]=zeile;
i++;
}
} catch (IOException e) {
e.printStackTrace();
}
}
public void ausgeben(){
for (int i=0;i<zeilen;i++){
random(i);
}
for (int i=0;i<zeilen;i++){
JOptionPane.showConfirmDialog(null,
"Nächsten namen Ausgeben",
"Ausgabe",
JOptionPane.YES_OPTION);
System.out.println(name_random[i]);
}
}
public void random(int a){
int x;
geklappt=false;
while (geklappt=false){
x=Greenfoot.getRandomNumber(zeilen);
if (name_sortiert[x]!=null){
name_random[a]=name_sortiert[x];
name_sortiert[x]=null;
geklappt=true;
}
}
}
}
Bei dem oben angegebenen Code soll Java eine txt-Datei zeilenweise einlesen und die eingelesenen Zeilen in zufälliger Reihenfolge ausgeben. Wenn ich das Programm allerdings ausführe wird immer "null" ausgegeben.Könnt ihr mir helfen meinen Fehler zu finden, denn ich habe trotz intensiver Suche noch nichts gefunden.
Danke schon mal im voraus Bobo.