Frage

Ich habe ein Problem, eine Textdatei in Java zu lesen und es auf einen Array zuweisen. Das Programm läuft, aber ich bin immer null. Ich habe versucht, den Code ändern zu seiner einfachsten für wie, was Sie unten sehen. Da diese sollte man durch die Textdatei wirklich Schleife. Aber ich tue es auf diese Weise, so dass ich leicht sehen, wo ist das Problem. Aber das Problem ist, dass ich weiß nicht, warum es immer noch die Ausgabe null.

Die Datei ist sicherlich im Verzeichnis ich seit dem in Methode gebaut angegeben haben existiert true zurückgegeben, wenn ich es überprüfen Sie dieses mit:

if(ofile.exists()==true){
System.out.println("exist");
}else{
System.out.println("not exist");
}

Bitte Ich brauche Hilfe, dahinter die Fehler zu bestimmen, warum ist es Rückkehr null.

public static void main(String args[]){

    String[] eq=new String[50];
    String[]ea=new String[50];
    String[]eb=new String[50];
    String[] ec=new String[50];
    String[]ed=new String[50];
    char[] ans=new char[50];
    String strtemp;
    File ofile= new File("J:\\questions.txt");
    BufferedInputStream bis= null;
    FileInputStream fis= null;
    DataInputStream dis=null;




    int ii=0;
    int score=0;



    System.out.println(eq[1] + "\n" + ea[1] + "\n" + eb[1] + "\n" + ec[1] + "\n" + ed[1] + "\n" + "\n" + "Answer: ");
    String strans=x.nextLine();
    char y=strans.charAt(0);
    if(y==ans[1]){
    score++;
    }else{

    }


    try{
    fis=new FileInputStream(ofile);
    bis=new BufferedInputStream(fis);
    dis=new DataInputStream(bis);

    while(dis.available()!=0){

    eq[1]=dis.readLine(); ea[1]=dis.readLine(); 
    eb[1]=dis.readLine(); ec[1]=dis.readLine();
    ed[1]=dis.readLine(); strtemp=dis.readLine();
    ans[1]=strtemp.charAt(0); 

    }

    bis.close();
    dis.close();
    fis.close();


    }catch(FileNotFoundException e){
    e.printStackTrace();
    }catch(IOException e){
    e.printStackTrace();

    }


    }
War es hilfreich?

Lösung

Hier ist, wie Sie eine Textdatei in Java unter Verwendung von BufferedReader lesen:

    BufferedReader reader = null;
    try {
        reader = new BufferedReader( new FileReader( "J:\\questions.txt") );
        String line = null;
        do {
            line = reader.readLine();
            if( line != null ) {
                // Do Something with line                
            }
        } while( line != null );
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if( reader != null )
            try {
                reader.close();
            } catch (IOException e) {
            }
    }

Andere Tipps

Ich glaube, ich hatte ein ähnliches Problem. Soweit ich die dis.available zurückkehrt sagen könnte, 0, auch wenn es Text zu lesen ist. Versuchen Sie, etwas in einem Puffer zu lesen.

`verfügbar‘ in der javadoc als

beschrieben
  

int vorhanden ()              Gibt eine Schätzung der Anzahl der Bytes, die gelesen werden können (oder übersprungen) von diesem Eingabestrom ohne durch den nächsten Aufruf einer Methode für diesen Eingangsstrom blockiert wird.

Es wird zunächst 0 sein, weil Sie nicht von ihr noch nicht gelesen haben. Verwenden Sie keine available für diese.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top