用Android Studio写一段实现在手机存储查找txt格式文件并展示的代码
时间: 2023-08-31 10:20:13 浏览: 215
### 回答1:
StringBuilder content = new StringBuilder();
try {
FileInputStream fis = openFileInput("filename.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String str;
while ((str = br.readLine()) != null) {
content.append(str);
}
fis.close();
br.close();
} catch (Exception e) {
e.printStackTrace();
}
String 内容 = content.toString();
TextView 文本框 = findViewById(R.id.文本框);
文本框.setText(内容);
### 回答2:
在Android Studio中,可以使用以下代码实现在手机存储中查找并展示txt格式文件。
1. 权限申请
为了访问手机存储,需要在AndroidManifest.xml文件中添加以下权限申请:
```xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
```
2. 布局文件
在activity_main.xml文件中添加一个ListView组件用于展示找到的txt文件:
```xml
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
```
3. Activity代码
在MainActivity.java文件中,使用以下代码实现在存储中查找txt文件并展示:
```java
import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.Environment;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private static final int REQUEST_PERMISSION = 1;
private ListView listView;
private List<String> fileList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.list_view);
fileList = new ArrayList<>();
askForPermission();
File directory = new File(Environment.getExternalStorageDirectory().getPath());
if (directory.exists()) {
searchForTxtFiles(directory);
}
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, fileList);
listView.setAdapter(adapter);
}
private void askForPermission() {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_PERMISSION);
}
}
private void searchForTxtFiles(File directory) {
File[] files = directory.listFiles();
if (files == null) {
Toast.makeText(this, "没有找到任何文件", Toast.LENGTH_SHORT).show();
return;
}
for (File file : files) {
if (file.isDirectory()) {
searchForTxtFiles(file);
} else if (file.getName().toLowerCase().endsWith(".txt")) {
fileList.add(file.getName());
}
}
}
}
```
在上述代码中,首先申请读取存储权限。然后使用Environment.getExternalStorageDirectory().getPath()获取存储路径,遍历路径下的所有文件和文件夹,判断文件是否是txt格式,并将其文件名添加到fileList中。最后使用ArrayAdapter将fileList中的文件名展示在ListView中。
### 回答3:
1. 首先,在Android Studio中创建一个新的项目。
2. 打开MainActivity.java文件,并在onCreate方法中添加以下代码:
```java
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private List<File> txtFiles;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtFiles = new ArrayList<>();
// 获取手机存储目录
String storageDirectory = Environment.getExternalStorageDirectory().getAbsolutePath();
// 递归查找txt文件
findTxtFiles(new File(storageDirectory));
// 展示txt文件
displayTxtFiles();
}
private void findTxtFiles(File directory) {
File[] files = directory.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
findTxtFiles(file);
} else {
if (file.getName().endsWith(".txt")) {
txtFiles.add(file);
}
}
}
}
}
private void displayTxtFiles() {
for (File file : txtFiles) {
Log.d("FilePath", file.getAbsolutePath());
}
}
}
```
3. 在AndroidManifest.xml文件中添加以下权限:
```xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
```
这段代码实现了在手机存储中查找txt格式文件的功能。它首先获取手机存储目录,然后通过递归查找该目录下的所有文件,判断文件的扩展名是否为txt,如果是则将文件添加到txtFiles列表中。最后,通过displayTxtFiles方法展示所有找到的txt文件的绝对路径。注意需要在AndroidManifest.xml文件中添加读取外部存储权限。
阅读全文