如何在android中读取txt文件?

时间:2019-11-13 11:01:27

标签: java android

package com.example.popword;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import java.io.File;
import java.util.Scanner;

public class ReadText1 extends Activity {
    TextView textview;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textview = (TextView) findViewById(R.id.textView);
        try (Scanner scanner = new Scanner(new File("C:\\Users\\UOU\\Desktop\\word.txt"))) {
            while (scanner.hasNext()) {
                textview.setText(scanner.nextLine());
            }
        } catch (Exception e) {
            System.err.println("Exception occurred!");
        }
    }
}

================================================ ===================================     2019-11-13 20:07:44.224 1004-1004 / com.example.popword E / cklee:com.example.popword.ReadText1.printStackTrace(ReadText1.java:29)         com.example.popword.ReadText1.onCreate(ReadText1.java:22)         android.app.Activity.performCreate(Activity.java:7136)         android.app.Activity.performCreate(Activity.java:7127)         android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)         android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)         android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)         android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)         android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)         android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)         android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1808)         android.os.Handler.dispatchMessage(Handler.java:106)         android.os.Looper.loop(Looper.java:193)         android.app.ActivityThread.main(ActivityThread.java:6669)         java.lang.reflect.Method.invoke(本机方法)         com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:493)         com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

3 个答案:

答案 0 :(得分:0)

您需要将txt文件放入Android项目包中。 您可以将其放入:

  • 资产文件夹,然后:
AssetManager am = context.getAssets();
InputStream is = am.open("word.txt");
  • Res文件夹(res / raw),然后:
  

InputStream是= getResources()。openRawResource(R.raw.word);

答案 1 :(得分:0)

如何读取计算机上的文件? 网络上有很多教程,向您解释如何在android中读写文件。而且我会使用BufferedReader而不是Scanner。

答案 2 :(得分:0)

您可以按照以下步骤直接从存储设备或sdcard中读取文件:

1。将这两个权限添加到您的项目清单文件中

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

2。创建以下函数

private void ReadTxtFile(File txtfilepath) {
    if (txtfilepath.exists()) {
        StringBuffer txt = new StringBuffer();
        try {
            BufferedReader br = new BufferedReader(new FileReader(txtfilepath));
            String line;

            while ((line = br.readLine()) != null) {
                txt.append(line);
                txt.append('\n');
            }
            br.close();
        } catch (IOException e) {
            Log.e("Exception:",e.toString());
        }

        Log.e("File Text:",txt.toString());// "txt" variable contian your file text
    }
}
  1. 随时随地调用函数并提供文本文件路径作为函数参数

     ReadTxtFile(new File("/sdcard/Download/sample.txt"));