读取指定文件夹下.TXT文件并显示在ListView控件中,相关代码如下:
MainActivity
package com.example.txtlist;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import androidx.appcompat.app.AppCompatActivity;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Arrays;
import static android.content.ContentValues.TAG;
public class MainActivity extends AppCompatActivity {
private ListView lv;
ArrayList name;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.e(TAG, "list. name: " + Environment.getExternalStorageDirectory());
lv=(ListView )findViewById(R.id.lv);
name = new ArrayList();
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
// File path = Environment.getExternalStorageDirectory();// 获得sd卡路径
@SuppressLint("SdCardPath") File path = new File("/data/data/com.example.txtlist/files");//读取指定路径下的txt文件
File[] files = path.listFiles();
getFileName(files);
}
ArrayAdapter adapter = new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1 ,name);
lv.setAdapter(adapter);
}
private void getFileName(File[] files) {
if (files != null) {// 先判断目录是否为空,否则会报空指针
for (File file : files) {
if (file.isDirectory()) {
getFileName(file.listFiles());
} else {
String fileName = file.getName();
if (fileName.endsWith(".txt")) {
name.add(fileName);//将文件名添加到ListView
}
}
}
}
}
}
activity_main.xml
AndroidManifest.xml
最终的效果如下图:



