androidstudio读取txt
时间: 2023-08-26 20:04:53 浏览: 89
要在Android Studio中读取txt文件,可以使用以下代码:
```java
try {
InputStream inputStream = getResources().openRawResource(R.raw.myfile); // 替换为你的文件名
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
StringBuilder stringBuilder = new StringBuilder();
while ((line = reader.readLine()) != null) {
stringBuilder.append(line);
}
reader.close();
inputStream.close();
String content = stringBuilder.toString();
// 打印读取到的内容
System.out.println(content);
} catch (IOException e) {
e.printStackTrace();
}
```
其中,`R.raw.myfile`表示文件路径,可以使用`getResources().openRawResource()`方法来读取txt文件。读取后,可以通过`BufferedReader`逐行读取文件内容,并使用`StringBuilder`组合成完整的字符串。
注意需要加入读取文件的权限,即在AndroidManifest.xml中添加以下代码:
```xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
```
如果要读取外部存储的txt文件,需要动态请求存储权限,可以参考以下代码:
```java
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
// 已经获得了读取外部存储的权限,可以进行读取操作
readExternalFile();
} else {
// 未获得读取外部存储的权限,需要动态请求
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
}
// 处理用户的权限请求响应
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 1) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 用户同意了权限请求,可以进行读取文件操作
readExternalFile();
} else {
// 用户拒绝了权限请求,无法进行读取文件操作
Toast.makeText(this, "无法读取文件,需要获得读取外部存储的权限", Toast.LENGTH_SHORT).show();
}
}
}
// 读取外部存储的txt文件
private void readExternalFile() {
File file = new File(Environment.getExternalStorageDirectory(), "myfolder/myfile.txt"); // 替换为你的文件名和路径
try {
BufferedReader reader = new BufferedReader(new FileReader(file));
String line;
StringBuilder stringBuilder = new StringBuilder();
while ((line = reader.readLine()) != null) {
stringBuilder.append(line);
}
reader.close();
String content = stringBuilder.toString();
// 打印读取到的内容
System.out.println(content);
} catch (IOException e) {
e.printStackTrace();
}
}
```
在AndroidManifest.xml中添加以下代码:
```xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
```
这里示范了如何请求读取外部存储的权限,并使用`File`类来读取txt文件。注意需要动态请求读取权限,并且需要在AndroidManifest.xml中添加读写外部存储的权限声明。
阅读全文