Java 在内部存储器的文件中写入/读取矩阵

Java 在内部存储器的文件中写入/读取矩阵,java,android,matrix,Java,Android,Matrix,在我的应用程序中,我创建了一个矩阵、三个按钮(加载、保存和检查按钮)以及一些TextView和EditText字段。“加载”按钮应该从内部存储器中的现有文本文件加载矩阵,而“保存”按钮应该将矩阵保存到同一文件中。检查按钮应搜索EditText字段中的组合是否存在,如果存在,则应显示组合的结果,如果不存在,则应要求您输入保存在矩阵中的结果 “检查”按钮可以工作,但是我无法使“加载”和“保存”按钮正常工作。有什么建议吗 代码: float[][]kvote=newfloat[200][8]; int

在我的应用程序中,我创建了一个矩阵、三个按钮(加载、保存和检查按钮)以及一些TextView和EditText字段。“加载”按钮应该从内部存储器中的现有文本文件加载矩阵,而“保存”按钮应该将矩阵保存到同一文件中。检查按钮应搜索EditText字段中的组合是否存在,如果存在,则应显示组合的结果,如果不存在,则应要求您输入保存在矩阵中的结果

“检查”按钮可以工作,但是我无法使“加载”和“保存”按钮正常工作。有什么建议吗

代码:

float[][]kvote=newfloat[200][8];
int计数器=0;
字符串str;
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//按钮、文本视图和编辑视图初始化
LOAD.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
试一试{
FileInputStream fin=openFileInput(“Text.txt”);
BufferedReader br=新的BufferedReader(新的InputStreamReader(fin));
字符串行=null;
字符串[]数字=null;
浮动x;
int i=0;
而((line=br.readLine())!=null){
数字=行。拆分(\\d\\s+);
x=Float.valueOf(数字[0].trim());
kvote[计数器][i]=x;
计数器++;
i++;
如果(i==8)
i=0;
}
br.close();
fin.close();
str=“已加载文件。”;
显示设置文本(str);
}
捕获(IOE异常){
e、 printStackTrace();
}
}
});
SAVE.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
试一试{
FileOutputStream fOut=openFileOutput(“Text.txt”,MODE_PRIVATE);
BufferedWriter bwr=新的BufferedWriter(新的OutputStreamWriter(fOut));

对于(int i=0;i“我无法让加载和保存按钮正常工作”,它们现在以什么方式工作(与正常工作相反)?此外,如果出现任何错误消息和/或stacktrace,请在问题中准确引用。问题寻求调试帮助(“此代码为什么不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。“(引自)显然我没有正确地将浮点数加载到矩阵中。我只需要将计数器++放入if中(i==8)语句,新手错误。既然我看不到这个文件,我该如何从一个特定的文件开始写和读呢?
float[][] kvote = new float[200][8];
int counter=0;
String str;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

//Button, TextView and EditView initialization

LOAD.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                FileInputStream fin = openFileInput("Text.txt");
                BufferedReader br=new BufferedReader(new InputStreamReader(fin));
                String line=null;
                String[] numbers=null;
                float x;
                int i=0;
                while((line=br.readLine())!=null){
                    numbers=line.split("\\d\\s+");

                    x=Float.valueOf(numbers[0].trim());
                    kvote[counter][i]=x;
                    counter++;
                    i++;
                    if(i==8)
                        i=0;
                }
                br.close();
                fin.close();
                str="File loaded.";
                Disp.setText(str);
            }
            catch(IOException e) {
                e.printStackTrace();
            }

        }
    });


SAVE.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v){
            try {
                FileOutputStream fOut = openFileOutput("Text.txt", MODE_PRIVATE);
                BufferedWriter bwr = new BufferedWriter(new OutputStreamWriter(fOut));
                for(int i=0;i<counter;i++)
                    for(int j=0;j<8;j++)
                    {
                        bwr.write(Float.toString(kvote[i][j]));
                        bwr.write("\n");
                    }
                bwr.close();
                fOut.close();
                str="File saved";
                Disp.setText(str);
            }
            catch(IOException e) {
                e.printStackTrace();
            }
        }
    });
Check.setOnClickListener(new View.OnClickListener() {...}
}