2013-02-12 27 views
13

Làm thế nào tôi có thể đọc một tập tin văn bản như trong ứng dụng android:Đọc một textfile sử dụng InputStream

"1.something written 
2.in this file 
3.is to be read by 
4.the InputStream 
..." 

vì vậy tôi có thể được trả lại một chuỗi như:

"something written\nin this file\nis to be read by\nthe InputStream" 

những gì tôi nghĩ là (Mã giả):

make an inputstream 
is = getAssest().open("textfile.txt"); //in try and catch 
for loop{ 
string = is.read() and if it equals "." (i.e. from 1., 2., 3. etc) add "/n" ... 
} 

Trả lời

23

thử này

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.Toast; 
import java.io.*; 

public class FileDemo1 extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     try { 
      playWithRawFiles(); 
     } catch (IOException e) { 
      Toast.makeText(getApplicationContext(), "Problems: " + e.getMessage(), 1).show(); 
     } 
    } 

    public void playWithRawFiles() throws IOException {  
     String str = ""; 
     StringBuffer buf = new StringBuffer();    
     InputStream is = this.getResources().openRawResource(R.drawable.my_base_data); 
     try { 
      BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
      if (is != null) {        
       while ((str = reader.readLine()) != null) {  
        buf.append(str + "\n"); 
       }     
      } 
     } finally { 
      try { is.close(); } catch (Throwable ignore) {} 
     } 
     Toast.makeText(getBaseContext(), buf.toString(), Toast.LENGTH_LONG).show(); 
    } 
} 
9

Sử dụng BufferedReader để đọc luồng đầu vào. Vì BufferedReader sẽ đọc văn bản từ luồng đầu vào ký tự, đệm các ký tự để cung cấp cho việc đọc hiệu quả các ký tự, mảng và dòng. InputStream đại diện cho luồng đầu vào của byte. reader.readLine() sẽ đọc từng dòng tệp.

BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 
StringBuilder out = new StringBuilder(); 
String line; 
while ((line = reader.readLine()) != null) { 
    out.append(line); // add everything to StringBuilder 
    // here you can have your logic of comparison. 
    if(line.toString().equals(".")) { 
     // do something 
    } 

} 
0
   File fe=new File(abc.txt); 
       FileInputStream fis=new FileInputStream(fe); 
       byte data[]=new byte[fis.available()]; 
       fis.read(data); 
       fis.close(); 
       String str=new String(data); 
       System.out.println(str); 
+0

Nó sẽ giúp cung cấp bối cảnh như thế nào và ở đâu để sử dụng mã của bạn – Adonis

+0

nếu bạn có bất kỳ tập tin txt và u muốn đọc mà tập tin văn bản sử dụng FileInputStream bạn có thể làm như vậy và ..... ..... trong File fe = new File (abc.txt); và điều này sẽ được hiển thị trong giao diện điều khiển của bạn đọc dữ liệu String str = new String (data); System.out.println (str); – Ziyad

+0

Kết quả của .read (data) bị bỏ qua –

Các vấn đề liên quan