0

我正在尝试获取一个文件以保存到我的 SD 卡。这是我到目前为止的代码。我非常感谢您提供的任何帮助。谢谢编辑:问题是文件没有保存。当我退出程序并查看 sdcard 时,没有保存任何文件。我在错误捕获器中放了一个祝酒词,看起来我得到了一个 IOException。我不知道如何检查 StackTrace 日志

class bSaveListen implements Button.OnClickListener{
    @Override

    public void onClick(View arg0) {
        savef();
    }

}

public void savef(){
    sdCard = Environment.getExternalStorageDirectory();
    String filename = "aaaaaaa.txt";
    file = new File(sdCard, filename);
    FileOutputStream fileout;
    byte[] thatString = new String("awesome string").getBytes();
    try {
        fileout = new FileOutputStream(file);
        fileout.write(thatString);
        fileout.flush();
        fileout.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
4

2 回答 2

0

我今天花了一整天的时间试图弄清楚这个问题,我终于有了答案。只是想我会把它贴在这里,以防其他人遇到类似的问题。我愚蠢地将我的权限写在应用程序代码块中,而不是在它下面。应该是这样的

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".Main"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

不像这样

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".Main"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
</application>`
于 2012-05-23T19:05:44.187 回答
0

可能您遇到了异常,您根本没有看到它。而不是e.printStackTrace();,这是无用的,因为它没有出现在 DDMS 中,使用L.e(TAG, "Error", e); 这样你应该能够看到Exception并找出问题所在

于 2012-05-18T15:18:53.993 回答