我的代码有什么问题(android编程)

时间:2014-03-13 05:42:53

标签: android storage

我正在尝试将文本文件的内容添加到我的应用中的内容框中。当我提供.txt文件的名称时,txt文件的内容应该放在我的内容框中。此txt文件放在sdcard目录中。

这是我写的代码

public void sdd(View v){

    TextView t = (EditText)findViewById(R.id.txtTitle);
    EditText content = (EditText)findViewById(R.id.txtContent);
    File dir = Environment.getExternalStorageDirectory();
    String tt=".txt";
   // File file = new File(dir,"text.txt");
    File file = new File(dir,t.getText().toString()+ tt);
    if(file.exists())   // check if file exist
    {
          //Read text from file
        StringBuilder text = new StringBuilder();
        try {
            BufferedReader br = new BufferedReader(new FileReader(file));
            String line;

            while ((line = br.readLine()) != null) {
                text.append(line);
                text.append('\n');
            }
        }
        catch (IOException e) {
            //You'll need to add proper error handling here
        }
        //Set the text
      //  et.setText(text);
        content.setText(text);
    }
    else
    {
        content.setText("Sorry file doesn't exist!!");
    }
 }  

现在,当我尝试提供文件名时,我总是得到Sorry file doesn't exist,即使它确实如此!谁能告诉我什么是错的?或者如何改进此代码

3 个答案:

答案 0 :(得分:1)

最好像这样检查File

File dir = Environment.getExternalStorageDirectory().getAbsolutePath();
String filename = t.getText().toString()+ tt;
File file = new File(dir,filename.trim());

if(file.exists() && (file.length()!=0))   // check if file exist
{

//do your job

}else{

 content.setText("Sorry file doesn't exist!!");

}

并在manifest.xml

中添加读写权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

答案 1 :(得分:0)

此时读取和写入权限只需要读取权限

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

可能是一些空白有一个问题然后尝试wd这个

TextView t = (EditText)findViewById(R.id.txtTitle);
    EditText content = (EditText)findViewById(R.id.txtContent);
    File dir = Environment.getExternalStorageDirectory();
    String tt=".txt";

String filename = getText().toString()+ tt; 


    File file = new File(dir,filename.trim());

其余代码相同

答案 2 :(得分:0)

我刚刚开始使用Android开发!

首先,我创建一个新变量来存储它:t.getText()。toString()+ tt

然后我尝试调试你的代码。在您测试文件存在的行上设置一个断点,该断点明显返回false。

检查该变量的内容,确保它具有您期望的文件名

希望有所帮助!