How to read a selected text file from sdcard on android

后端 未结 3 507
旧巷少年郎
旧巷少年郎 2020-12-06 14:37

i am new at android development and i need your help. I was locking at topics that are similar for my development but non of then help me. So far i create functions that get

相关标签:
3条回答
  • 2020-12-06 14:53

    first you have to give an id to your textview into the load.xml file and define the textview inside a linear layout. like this

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent"
    <TextView android:id="@+id/tv1
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" 
            android:textSize="18sp"/>
    

    now you have to set the layout of your activity.you can do this in the onCreate() method only.

    setContentView(R.layout.load);
    

    now make a TextVew object like this.

    TextView tview = (TextView) findViewById(R.id.tv1);
    

    now you have to read the text file using FileInputStream and keep it into a string variable.

    after that you can assign the string to the text view.

    tview.setText(string variable name);
    
    0 讨论(0)
  • 2020-12-06 15:03

    Try this code:

    package com.javasamples;
    import java.io.*;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.*;
    import android.view.View.OnClickListener;
    import android.widget.*;
    
    public class FileDemo2 extends Activity {
        // GUI controls
        EditText txtData;
        Button btnWriteSDFile;
        Button btnReadSDFile;
        Button btnClearScreen;
        Button btnClose;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        // bind GUI elements with local controls
        txtData = (EditText) findViewById(R.id.txtData);
        txtData.setHint("Enter some lines of data here...");
    
        btnWriteSDFile = (Button) findViewById(R.id.btnWriteSDFile);
        btnWriteSDFile.setOnClickListener(new OnClickListener() {
    
        public void onClick(View v) {
            // write on SD card file data in the text box
            try {
                File myFile = new File("/sdcard/mysdfile.txt");
                myFile.createNewFile();
                FileOutputStream fOut = new FileOutputStream(myFile);
                OutputStreamWriter myOutWriter = 
                                        new OutputStreamWriter(fOut);
                myOutWriter.append(txtData.getText());
                myOutWriter.close();
                fOut.close();
                Toast.makeText(getBaseContext(),
                        "Done writing SD 'mysdfile.txt'",
                        Toast.LENGTH_SHORT).show();
            } catch (Exception e) {
                Toast.makeText(getBaseContext(), e.getMessage(),
                        Toast.LENGTH_SHORT).show();
            }
        }// onClick
        }); // btnWriteSDFile
    
            btnReadSDFile = (Button) findViewById(R.id.btnReadSDFile);
            btnReadSDFile.setOnClickListener(new OnClickListener() {
    
            public void onClick(View v) {
                // write on SD card file data in the text box
            try {
                File myFile = new File("/sdcard/mysdfile.txt");
                FileInputStream fIn = new FileInputStream(myFile);
                BufferedReader myReader = new BufferedReader(
                        new InputStreamReader(fIn));
                String aDataRow = "";
                String aBuffer = "";
                while ((aDataRow = myReader.readLine()) != null) {
                    aBuffer += aDataRow + "\n";
                }
                txtData.setText(aBuffer);
                myReader.close();
                Toast.makeText(getBaseContext(),
                        "Done reading SD 'mysdfile.txt'",
                        Toast.LENGTH_SHORT).show();
            } catch (Exception e) {
                Toast.makeText(getBaseContext(), e.getMessage(),
                        Toast.LENGTH_SHORT).show();
            }
            }// onClick
            }); // btnReadSDFile
    
            btnClearScreen = (Button) findViewById(R.id.btnClearScreen);
            btnClearScreen.setOnClickListener(new OnClickListener() {
    
                public void onClick(View v) {
                    // clear text box
                    txtData.setText("");
                }
            }); // btnClearScreen
    
            btnClose = (Button) findViewById(R.id.btnClose);
            btnClose.setOnClickListener(new OnClickListener() {
    
                public void onClick(View v) {
                    // clear text box
                    finish();
                }
            }); // btnClose
    
        }// onCreate
    
    }// AndSDcard
    

    the layout file is

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
    android:id="@+id/widget28"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ff0000ff"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android"
    >
    <EditText
    android:id="@+id/txtData"
    android:layout_width="fill_parent"
    android:layout_height="180px"
    android:textSize="18sp"  />
    
    <Button
    android:id="@+id/btnWriteSDFile"
    android:layout_width="143px"
    android:layout_height="44px"
    android:text="1. Write SD File"  />
    
    <Button
    android:id="@+id/btnClearScreen"
    android:layout_width="141px"
    android:layout_height="42px"
    android:text="2. Clear Screen"  />
    
    <Button
    android:id="@+id/btnReadSDFile"
    android:layout_width="140px"
    android:layout_height="42px"
    android:text="3. Read SD File"  />
    
    <Button
    android:id="@+id/btnClose"
    android:layout_width="141px"
    android:layout_height="43px"
    android:text="4. Close" />
    
    </LinearLayout>
    

    enter image description here

    0 讨论(0)
  • 2020-12-06 15:13

    I used this code to read a text file in SD card,

    public class ReadFileSDCardActivity extends Activity {  
        /** Called when the activity is first created. */  
        @Override  
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.main);  
    
            //Find the view by its id  
            TextView tv = (TextView)findViewById(R.id.fileContent);  
    
            File dir = Environment.getExternalStorageDirectory();  
            //File yourFile = new File(dir, "path/to/the/file/inside/the/sdcard.ext");  
    
            //Get the text file  
            File file = new File(dir,"text.txt");  
            // i have kept text.txt in the sd-card  
    
            if(file.exists())   // check if file exist  
            {  
                  //Read text from file  
                StringBuilder text = new StringBuilder();  
    
                try {  
                    BufferedReader br = new BufferedReader(new FileReader(file));  
                    String line;  
    
                    while ((line = br.readLine()) != null) {  
                        text.append(line);  
                        text.append('\n');  
                    }  
                }  
                catch (IOException e) {  
                    //You'll need to add proper error handling here  
                }  
                //Set the text  
                tv.setText(text);  
            }  
            else  
            {  
                tv.setText("Sorry file doesn't exist!!");  
            }  
         }  
    }  
    
    0 讨论(0)
提交回复
热议问题