# Txt auslesen... Inhalt in ein Array speichern



## Guest (4. Mai 2004)

Hi @ll  

Wie kann ich den inhalt in ein array speichern bzw Zeile für zeile... So dass die erste zeile die in der txt date steht z.b in das Array "Wortarray[0] reinkommt.... Das nächste Wort das in der 2 zeile steht dann in das Array "Wortarray[1] reinkommt usw....??? Muss ich das mit ner for schleife machen oder wie kann ich das hinbekommen? Und kann ich auch vorher irgendwie durch auslesen der txt die größe des arrays bestimmen, so dass ich es nicht so groß wählen muss?

bisher habe ich das hier::




```
import java.io.*; 

public class WortLesen { 
  public DateiLesen() { 
    try { 
      BufferedReader in = new BufferedReader(new FileReader("wort.txt")); 
      
		String str; 
		String bla;
		
		int Wortanzahl;
		String Wortarray[];
		Wortanzahl=1000;
		Wortarray = new String[Wortanzahl];

      while((str = in.readLine()) != null) { 

       // System.out.println(str);
        
        bla=str;
        Wortarray[1]=bla;
        //System.out.println(bla);
        System.out.println(Wortarray[1]);
       
        
      } 
    } 
    catch(FileNotFoundException fnfe) { 
      System.out.println("Datei nicht gefunden!"); 
    } 
    catch(IOException ioe) { 
      System.out.println("Fehler beim Lesen!"); 
    } 
  } 

  public static void main(String[] args) { 
    DateiLesen dl = new DateiLesen(); 
  } 
}
```



Vielen Danke schonmal im Vorraus


----------



## bygones (4. Mai 2004)

da du nicht weißt wie groß dein array sein wird würde ich empfehlen das ganze erstmal in eine Collections Structure (Vector, ArrayList usw) einzulesen.


```
BufferedReader in  = new BufferedReader(new FileReader("datei.txt"));
String line;
ArrayList list = new ArrayList();

while((line = in.readLine()) != null) {
   list.add(line);
}
in.close();
```
Damit hast du dann pro Eintrag in der COllections eine Zeile.
Wenn es ein Array sein muss, kannst du folgendes machen:

```
String[] lines = (String[])list.toArray(new String[0));
```


----------



## Guest (4. Mai 2004)

so:: ???? oder wie meinst du das?



```
import java.io.*; 

public class WortLesen { 
  public DateiLesen() { 
    try { 
      BufferedReader in = new BufferedReader(new FileReader("wort.txt")); 
      
		
		String line; 
		int Wortanzahl;
		String Wortarray[];
		Wortanzahl=1000;
		Wortarray = new String[Wortanzahl];
		line = new String[1000];

	ArrayList list = new ArrayList();

      while((line = in.readLine()) != null) { 
        
        String[] line = (String[])list.toArray(new String[0]);
        System.println(line[1]);
        
      } 
    } 
    catch(FileNotFoundException fnfe) { 
      System.out.println("Datei nicht gefunden!"); 
    } 
    catch(IOException ioe) { 
      System.out.println("Fehler beim Lesen!"); 
    } 
  } 

  public static void main(String[] args) { 
    DateiLesen dl = new DateiLesen(); 
  } 
}
```


----------



## bygones (4. Mai 2004)

nein eher so:

```
...

BufferedReader in = new BufferedReader(new FileReader("datei.txt"));
String line;
ArrayList list = new ArrayList();

while((line = in.readLine()) != null) {
 list.add(line);
}
in.close;

String[] lines = (String[]) list.toArray(new String[0]);

// nun kannst du mit lines als array weiter arbeiten
// oder wenn du es weglässt kannst duch mit der arraylist weiter arbeiten !!!
```


----------



## Guest (4. Mai 2004)

irgendwie geht des net.... 


```
import java.io.*; 

public class WortLesen { 
  public WortLesen() { 
    try { 
      BufferedReader in = new BufferedReader(new FileReader("wort.txt")); 
      
      	String line; 
		ArrayList lines = new ArrayList(); 

		while((line = in.readLine()) != null) 
		{ 
			list.add(line); 
		} 
	   in.close; 
	   
	   System.out.println(ArrayList[1]);


    } 
    catch(FileNotFoundException fnfe) { 
      System.out.println("Datei nicht gefunden!"); 
    } 
    catch(IOException ioe) { 
      System.out.println("Fehler beim Lesen!"); 
    } 
  } 

  public static void main(String[] args) { 
    DateiLesen dl = new DateiLesen(); 
  } 
}  
[/quote]


[quote]

C:\JCreator LE\MyProjects\striche\DateiLesen.java:15: not a statement
	   in.close; 
             ^
C:\JCreator LE\MyProjects\striche\DateiLesen.java:3: class WortLesen is public, should be declared in a file named WortLesen.java
public class WortLesen { 
       ^
C:\JCreator LE\MyProjects\striche\DateiLesen.java:9: cannot resolve symbol
symbol  : class ArrayList  
location: class WortLesen
		ArrayList lines = new ArrayList(); 
                ^
C:\JCreator LE\MyProjects\striche\DateiLesen.java:9: cannot resolve symbol
symbol  : class ArrayList  
location: class WortLesen
		ArrayList lines = new ArrayList(); 
                                      ^
C:\JCreator LE\MyProjects\striche\DateiLesen.java:13: cannot resolve symbol
symbol  : variable list  
location: class WortLesen
			list.add(line); 
                        ^
C:\JCreator LE\MyProjects\striche\DateiLesen.java:17: cannot resolve symbol
symbol  : variable ArrayList  
location: class WortLesen
	   System.out.println(ArrayList[1]);
                              ^
C:\JCreator LE\MyProjects\striche\DateiLesen.java:30: cannot resolve symbol
symbol  : constructor DateiLesen  ()
location: class DateiLesen
    DateiLesen dl = new DateiLesen(); 
                    ^
7 errors

Process completed.

[/quote]
```


----------



## Guest (4. Mai 2004)

ups an der file liegt des net... hab ausversehn des geändert.. des sind die fehler die ich haben::




> C:\JCreator LE\MyProjects\striche\DateiLesen.java:15: not a statement
> in.close;
> ^
> C:\JCreator LE\MyProjects\striche\DateiLesen.java:9: cannot resolve symbol
> ...


----------



## bygones (4. Mai 2004)

ok, der erste war mein Fehler.
da es ja eine Methode is muss es 
	
	
	
	





```
in.close();
```
 heißen.

Wegen den anderen Fehlern:
- wenn deine Klasse WortLesen heißt muss sie in einem File namens WortLesen.java sein !
- du musst die entsprechenden Packages importieren (java.io.*; fürs lesen und java.util.ArrayList)
- er kennt DateiLesen() nicht (andere Klasse ?)


----------



## Guest (4. Mai 2004)

Vielen Dank auch... jetzt geht es^^


----------



## Guest (4. Mai 2004)

ich hab noch ne Frage zu den arrays... 
Und zwar möchte ich eine ip liste mit dem array "importieren" und dann soll jedesal wenn die schleife durchlauft eine andere ip mit netsend gestartet werden... problem hab ich mit der länge des arrays und die arrays in den natsend befehl einzubaun:


```
if (e.getSource()==M.btnListe)
		{
			
		for (i=0; i<=10; i++)  //<---- anstatt 10 soll die länge des gesamten arrays angegeben werden zB lines.lenght (funzt aber so net)
		{	
//---------ARRAY-------------------

try { 
      BufferedReader in = new BufferedReader(new FileReader("a.txt")); 
      
      	String line;
		ArrayList list = new ArrayList(); 

		while((line = in.readLine()) != null) 
		{ 
			list.add(line); 
		} 
	   in.close(); 
	   String[] lines = (String[]) list.toArray(new String[0]); 

	   System.out.println(lines[i]);
		System.out.println("imArray");

    } 
    catch(FileNotFoundException fnfe) { 
      System.out.println("Datei nicht gefunden!"); 
    } 
    catch(IOException ioe) { 
      System.out.println("Fehler beim Lesen!"); 
    } 
	
//--------ARRAY-ENDE---------------------		
		
			try
        {
        	
        
          Process proc = Runtime.getRuntime().exec("cmd.exe /c"+" "+ lines[i]+" "+ M.tfText.getText()); //<---- und hier soll di ip rein kommen (lines[i]) ...
          BufferedReader in=new BufferedReader(new InputStreamReader (proc.getInputStream()));
          while(in.readLine()!=null)
  		{
  		
        }
         
          }

          catch(Exception M)   
          {
          	System.out.println("Net Send funzt net!!"); 
          	System.err.println(e.toString());
          	M.printStackTrace();
          	}
          }
	
	}
```


Villeicht kann mir da ja jemand helfen...

Danke!
Cyrix


----------

