# Bestimmte zeile aus .txt einlesen



## meebo (18. Mrz 2009)

Hi, ich will eine bestimmte zeile aus einer *.txt datei einlesen.

Die  Datei ist wie folgt aufgebaut:

```
Ich1
Du2
Er3
Sie4
Es5
Wir6
Ihr7
Sie8
```
ich habe mir gedacht dass ich die zeile mit _s.endsWith(zahl)_ bestimme, die eingelesen werden soll.

Wie mach ich das?
Gibts vllt noch eine "elegantere" lösung?


----------



## MiDniGG (18. Mrz 2009)

Naja ich nehm mal an Du gehst die .txt einfach mit readLine durch und da kannst es dann klar mit endsWith machen. Glaub ned, dass es da was "eleganteres" gibt...


----------



## 0001001 (18. Mrz 2009)

Kommt drauf an, wie du die Textdatei einliest und ob du weisst in welcher Zeile das gesuchte steht.
Du kannst die txt Datei beispielsweise Zeile für Zeile in eine ArrayList einlesen und dann einfach sagen liste.get(5);
und er gibt dir die 6. Zeile zurück.


----------



## MiDniGG (18. Mrz 2009)

0001001 hat gesagt.:


> Kommt drauf an, wie du die Textdatei einliest und ob du weisst in welcher Zeile das gesuchte steht.
> Du kannst die txt Datei beispielsweise Zeile für Zeile in eine ArrayList einlesen und dann einfach sagen liste.get(5);
> und er gibt dir die 6. Zeile zurück.



Was fast besser klingt ^^ Aber im Prinzip mein ich das Selbe ^^
Für den Fall, dass Du nicht weißt was in welcher Zeile steht ist dann aber doch ein String-vergleich besser


----------



## meebo (18. Mrz 2009)

habs schon gelößt, danke!

```
String zeile="";
      BufferedReader b = new BufferedReader (new FileReader("Test.txt") );
      String a = "6";
      
      while(zeile.endsWith(a) != true){
      zeile = b.readLine();
      }
      b.close();


      System.out.println(zeile);
```


----------



## HoaX (18. Mrz 2009)

Solang die Zeilen sortiert sind gehts, ansonsten bekommst du ein Problem wenns die z.B. die 16 vor der 6 kommt.


----------



## ARadauer (18. Mrz 2009)

du willst eine bestimmte zeile lesen, ok
durch was ist diese bestimmte zeile bestimmt, dass sie die 6. ist oder das einfach eine 6 hinten in der zeile steht?
Bzw schreibst du die 6 da hin, damit du weißt, dass sie die 6. ist? da könntest du auch einfach vorher fünfmal lesen und dann hast du beim nächsten mal die 6. juhu....


```
public static void main(String[] args) throws IOException {
	   System.out.println(getLineNumber(2, "c:\\xxx.txt"));
	   System.out.println(getLineNumber(5, "c:\\xxx.txt"));
      System.out.println(getLineNumber(10, "c:\\xxx.txt"));
	   
      
	}
	
	
	public static String getLineNumber(int num, String file) throws IOException{
	   LineNumberReader reader = new LineNumberReader (new FileReader(file) );
	   for(int i = 0; i<num-1; i++)
	      reader.readLine();
	   return reader.readLine();
	   
	}
```


----------

