FileWrite未创建新文件Android Studio,正在获取';java.io.FileNotFoundException:file.py:open失败:EROFS(只读文件系统)和#x27;

FileWrite未创建新文件Android Studio,正在获取';java.io.FileNotFoundException:file.py:open失败:EROFS(只读文件系统)和#x27;,java,python,android,runtime,filenotfoundexception,Java,Python,Android,Runtime,Filenotfoundexception,因此,我一直在尝试使用运行时方法在java中运行一个简单的python脚本。它在android studio之外运行得很好,但在android studio中,我不断收到此错误java.io.FileNotFoundException:file.py:open failed:EROFS(只读文件系统) 我知道这不是通过Java运行python脚本的最有效方法,但请帮助我。我不知道为了编写新脚本需要更改哪些权限 这是我的全部代码: public class MainActivity extends

因此,我一直在尝试使用运行时方法在java中运行一个简单的python脚本。它在android studio之外运行得很好,但在android studio中,我不断收到此错误
java.io.FileNotFoundException:file.py:open failed:EROFS(只读文件系统)

我知道这不是通过Java运行python脚本的最有效方法,但请帮助我。我不知道为了编写新脚本需要更改哪些权限

这是我的全部代码:

public class MainActivity extends AppCompatActivity {

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

        final TextView resultstv = (TextView)findViewById(R.id.resultsTV);
        Button solvebtn = (Button)findViewById(R.id.solvebtn);
        final EditText enterWordTv =  (EditText)findViewById(R.id.enterWordET);

        solvebtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                resultstv.setText(anagram(getEnterWordTv(enterWordTv)).toString());
            }
        });
    }


    public String getEnterWordTv(EditText inputFU) {
        String finWord = inputFU.getText().toString();
        return(finWord);
    }

    static ArrayList<String> anagram(Int num){
        ArrayList<String> results = new ArrayList<String>();
        try {
            String mainPrg = "import sys\nprint(sys.argv[1])";
            BufferedWriter out = new BufferedWriter(new FileWriter("AnagremSOlver.py"));
            out.write(mainPrg);
            out.close();
            String number = num;
            Process p = Runtime.getRuntime().exec("python3 AnagremSOlver.py " + number);
            BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
            String ret;
            while ((ret = in.readLine()) != null){
                results.add(ret);
            }
            System.out.println(results);
        } catch (Exception e){
            System.out.println(e);
        }
        return(results);
    }



}
public类MainActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
最终文本视图结果电视=(文本视图)findViewById(R.id.resultstv);
按钮solvebtn=(按钮)findViewById(R.id.solvebtn);
最终EditText enterWordTv=(EditText)findViewById(R.id.enterWordET);
solvebtn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
结果tv.setText(anagram(getEnterWordTv(enterWordTv)).toString());
}
});
}
公共字符串getEnterWordTv(编辑文本输入){
字符串finWord=inputFU.getText().toString();
返回(finWord);
}
静态数组列表字谜图(Int num){
ArrayList结果=新建ArrayList();
试一试{
字符串mainPrg=“导入系统\n打印(sys.argv[1])”;
BufferedWriter out=新的BufferedWriter(新文件写入程序(“AnagremSOlver.py”);
out.write(mainPrg);
out.close();
字符串编号=num;
进程p=Runtime.getRuntime().exec(“python3 AnagremSOlver.py”+数字);
BufferedReader in=新的BufferedReader(新的InputStreamReader(p.getInputStream());
字符串ret;
而((ret=in.readLine())!=null){
结果:添加(ret);
}
系统输出打印项次(结果);
}捕获(例外e){
系统输出打印ln(e);
}
返回(结果);
}
}

其他地方的其他回答告诉我通过添加
来更新
AndroidManifest.xml
中的权限,但添加后,我仍然遇到同样的问题。

我认为您应该提供文件到FileWriter的完整路径。你认为它会储存在哪里?或者是输入流读取器导致了异常?你应该知道并告诉我们。你使用的是安卓Q/10设备吗?如果你告诉
让我更新AndroidManifest.xml中的权限,但它没有做任何事情,那么我们就不知道你做了什么。很不清楚。@blackapps嘿,我更新了问题。我是android开发新手,不知道文件需要存储在哪里。我认为问题在于FileWriter无法创建文件(因为项目是只读的???),并且出现了错误。我使用的是安卓11。但即使你是新手,你也可以找出导致异常的语句。只需删除一些语句等等。所以请找出并告诉我。