2012-03-26 16 views
1

Ich versuche, eine zufällige Zeile aus einer Datei zu lesen. Mein Code hat keinen Fehler, kommt nur mit einer Kraft auf, sobald er im Emulator läuft und ich kann nicht herausfinden warum!Lesen von einer Textdatei in Android

public class filereader extends Activity { 
    TextView t = (TextView)findViewById(R.id.text); 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
} 

Scanner s = new Scanner(getResources().openRawResource(R.raw.lev1)); { 

    try { 
     while (s.hasNext()) { 
      String word = s.next(); 
      t.setText(word); 
     } 
    } 
    finally { 
     s.close(); 
    } 
} 

}

+0

check out Android Logcat, sollte es eine Ausnahme geben. –

+0

es sagt Klasse nicht gefunden ..? –

Antwort

2

Textview t = (Textview) findViewById (R.id.text);

Sie findViewById nicht laufen kann, bis die setContentView aufgerufen wurde:

TextView t = null; @Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    t = (TextView)findViewById(R.id.text); 
} 

stellen Sie sicher, dass Sie text innerhalb des main.xml

2

tun, um diese

BufferedReader myReader = null; 
    try 
    { 
     fIn = openFileInput("customer_number.txt");   
     myReader = new BufferedReader(new InputStreamReader(fIn)); 
    } 
    catch (FileNotFoundException e) 
    { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    String aDataRow = ""; 
    //String aBuffer = ""; 
    try 
    { 
     while ((aDataRow = myReader.readLine()) != null) { 
      aBuffer += aDataRow + "\n"; 
      // TO display Whole Data of File 
      Toast.makeText(getBaseContext(),aBuffer,Toast.LENGTH_SHORT).show(); 

    } 
     // To display Last Entered Number 
     Toast.makeText(getBaseContext(),last_number,Toast.LENGTH_SHORT).show(); 

    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
+0

+1 für 'printStackTrace()' dann könnten wir sehen, ob * "Mein Code hat keinen Fehler" * ist eine korrekte Aussage! –

0
public void readfromfile(){ 
    try { 
     FileInputStream fileIn=openFileInput("mytextfile.txt"); 
     InputStreamReader InputRead= new InputStreamReader(fileIn); 
     char[] inputBuffer= new char[READ_BLOCK_SIZE]; 
     int charRead; 

     while ((charRead=InputRead.read(inputBuffer))>0) { 
      // char to string conversion 
      String readstring=String.copyValueOf(inputBuffer,0,charRead); 
      String s +=readstring; 
     } 
     InputRead.close(); 
     Toast.makeText(getBaseContext(), s,Toast.LENGTH_SHORT).show(); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
erklären

Es liest die Textdatei "mytext.txt" string für string und speichert sie, indem sie sie an die string-Variable s anhängt. Also enthält die Variable "s" die letzte Zeichenkette aus der Datei.

Verwandte Themen