Daten aus Textdatei in ein Feld laden

Status
Nicht offen für weitere Antworten.

Veritas

Mitglied
hi, ich hoffe ihr könnt einem Java Anfänger helfen

ich möchte zahlen aus einer textdatei auslesen und als integer in ein feld schreiben...ich habe vollgendes programmiert
Die Elemente die Eclipse rot markiert habe ich auch hier rot dargestellt...[Beni: und ich hab Codetags eingefügt, damit man es lesen kann...]ich habe nicht einmal einen plan ob ich überhaupt in die richtige Richtung steuere....
Danke schon einmal im vorraus...


Code:
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;


public class memory
{
static void restoreMemory() 
{
	int store=0;
	LineNumberReader myReader = null;
	int wert_speicher=0;
	char [] brain = new char [wert_speicher];

	try {
		myReader = new LineNumberReader(new FileReader("Speicher.txt"));} 
		
	catch (FileNotFoundException e) 
	{
		e.printStackTrace();
	}
	
	try 
		{
		while(myReader.ready())
			{
				for(wert_speicher=0;wert_speicher<=myReader.length;wert_speicher++)
					{
						// ###### myReader.length
						// ###### HIER BRAUCH ICH AUCH EURE HILFE
						?? = brain [wert_speicher];
					}	
						
			
			}
		} 

		catch (IOException e1) 
	{
		e1.printStackTrace();
	}


}
}
 
Die Anzahl Integer in der Datei findest du leider erst raus, nachdem die Datei gelesen wurde (es sei denn, du hast irgendeine Art von Zähler in der Datei gespeichert).

Also speicherst du am einfachsten mal alle Strings die in ein Zahl verwandelt werden sollen in einer LinkedList, einem Vector oder was ähnlichem.

Sind die Strings durch ein " " getrennt? Dann kann dir der "StringTokenizer" eine Linie Text in die verschiedenen Teilstringe aufsplitten.

Danach erstellt du einen int-Array, mit der Länge = Anzahl gelesene Strings, und wandelst die einzelnen Strings mit Hilfe von "Integer.parseInt" um.

mfg Beni
 
Vielleicht hilft das ein wenig weiter:
habe noch einen besseren DateiLeser, aber den finde ich gerade nicht, muß nochmal ein paar CDs durchforsten

Code:
/* Generated by Together */
import java.io.*;
import java.util.StringTokenizer;
import java.util.Vector;

/**
 * @author Natalie Ardet 
 */
public class DateiLeser {
    final static String FILE_NOT_FOUND1 = "Die Datei ";
    final static String FILE_NOT_FOUND2 = " existiert nicht oder ist nicht lesbar";

    Vector woerter;

    public DateiLeser() {
    }

    public String[] leseWoerter(String dateiname) {
        woerter = new Vector();

		File datei = new File(dateiname);
        String zeile = null;
        if (datei.isFile() && datei.canRead()) {

            try{
            	FileInputStream stream = new FileInputStream(datei);
				InputStreamReader reader = new InputStreamReader(stream);
            	BufferedReader input = new BufferedReader(reader);
                boolean beenden = false;

            	while (input.ready() && !beenden) {
	            	zeile = input.readLine();

                    if (zeile == null) {
                        beenden = true;

                    }
                    else if (!zeile.equals("")) { // Leerzeilen ignorieren

                        woerterFinden(zeile);
                    }
            	}
            	input.close();
               
        	}
            catch (FileNotFoundException e) {
                System.out.println("Ups...FileNotFoundException" + e.getMessage() );
                e. printStackTrace();
         	}
            catch (IOException e) {
                System.out.println("Ups...IOException" + e.getMessage() );
            }
        }
        else {
            System.out.println(FILE_NOT_FOUND1 + dateiname + FILE_NOT_FOUND2);
        }

        String[] tmp= new String[woerter.size()];
        for (int i=0; i<woerter.size(); i++){
            tmp[i]= (String) woerter.get(i);
        }
        return tmp;
    }

    private void woerterFinden(String z) {

        StringTokenizer zeile = new StringTokenizer(z);
        String wort = null;
		while (zeile.hasMoreTokens()) {
          wort = zeile.nextToken();
          woerter.add(wort);
     	}

    }
}
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben