无法使用FileWriter在Android上写入文件

问题描述 投票:-1回答:1

我对Java和Android Studio都是陌生的,但是最近我一直在自学。目前,我正在尝试弄清楚如何在Android设备上编写和读取简单的文本文档。

我已经看到了几种在线完成此操作的方法,但是几乎所有这些方法都与写入和读取字节有关。在此阶段,我还不是很了解所有这些,我只想编写/阅读文本文档。我可以复制并粘贴在网上看到的内容,看看是否可行,但我希望至少对代码的功能有所了解。我已经尝试阅读在线文档,了解很多其他人用来实现此目标的内容,但我很难理解。

当我将其放入MainActivity.java并运行模拟器时,在计算机上通过命令行运行Java时发现并运行良好的解决方案无法正常工作。我不确定是文件路径问题还是权限问题,但我希望这里的人可以告诉我为什么此代码不会将文本文档写入Android内部存储。

package com.example.test;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

import java.io.File;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.Scanner;

public class MainActivity extends AppCompatActivity {
    static File testFile = new File("test_file.txt");
    static TextView textDisplay;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textDisplay = findViewById(R.id.textDisplay);
        saveData();
    }

    public static void saveData() {
        String text = String.format("%s,%s,%s,%s,%s", 7, 3, 4, 9, 2);
        try {
            FileWriter textWriter = new FileWriter(testFile);
            textWriter.write(text);
            textWriter.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void loadData(View view) {
        ArrayList<Integer> intList = new ArrayList<>();
        try {
            Scanner readFile = new Scanner(testFile).useDelimiter(",");
            while (readFile.hasNext()) {
                Integer data = Integer.parseInt(readFile.next());
                intList.add(data);
            }
            readFile.close();
            textDisplay.setText(intList.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
java android filewriter
1个回答
0
投票

首先要写入和读取文件,我们需要清单权限,并且必须拥有运行时权限。在那之后,我们需要文件路径来保存文件并读取文件。解决这些问题,您一定会成功。

© www.soinside.com 2019 - 2024. All rights reserved.