根据EditText的内容写入文件

时间:2012-04-28 13:04:43

标签: android file-io

我在写入文件时遇到问题,当EditText为空时我想在我的文件中写一个空格字符或-但我的条件被忽略了。

这不起作用,我不明白为什么:

public void onClick(View v) {
            // TODO Auto-generated method stub
            if(isthereafile == true){
            questioncount++;
            questiontext = question.getText().toString();
            correctanswertext = correctanswer.getText().toString();
            wronganswertext1 = wronganswer1.getText().toString();
            wronganswertext2 = wronganswer2.getText().toString();
            textpathofpic = pathofpic.getText().toString();

            try {
                FileWriter writer = new FileWriter(test,true);

                if(question.getText().toString().equals("") == false){
                writer.append(questiontext + ";");}
                if(correctanswer.getText().toString().equals("") == false){
                writer.append(correctanswertext + ";");}
                if(wronganswer1.getText().toString().equals("") == false){
                writer.append(wronganswertext1 + ";");}
                if(wronganswer2.getText().toString().equals("") == false){
                writer.append(wronganswertext2 + ";");}
                if(pathofpic.getText().toString().equals("") == false){
                writer.append(textpathofpic + ";");}

                if(question.getText().toString().equals("")){writer.append("-");}
                if(correctanswer.getText().toString().equals("")){writer.append("-");}
                if(wronganswer1.getText().toString().equals("")){writer.append("-");}
                if(wronganswer2.getText().toString().equals("")){writer.append(" ");}
                writer.flush();
                writer.close();     
                question.setText("");           
                correctanswer.setText("");      
                wronganswer1.setText("");           
                wronganswer2.setText("");

            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            }

        }
    });

2 个答案:

答案 0 :(得分:0)

而不是这个

  question.getText().toString().equals("")   

试试这个

  question.getText().toString().length()==0

答案 1 :(得分:0)

除了检查长度之外,您还需要修剪文本:

if (question.getText().toString().trim().length() == 0) {
}

更大的问题是您的代码在主线程上写入文件系统。您也不要在finally块中关闭FileWriter。并且不需要在close()之前立即调用flush()。