我按照JAVA的方法、按照网上查询的方法、按照书上的方法,写了三个版本了!但都不行!已经折腾两天了!请问到底是怎么回事呢??!谢谢了! (我没有SD卡,我是直接写在手机里的。我已经用Environment.getDataDirectory().toString();找到了路径,可即便往那个路径里写也不行。) package com.example.fcafileio; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.OutputStreamWriter; import java.io.PrintStream; import java.io.PrintWriter; import java.util.Scanner; import org.apache.http.util.EncodingUtils; import android.os.Bundle; import android.os.Environment; import android.widget.TextView; import android.app.Activity; import android.content.Context; public class FCAFILEIO extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_fcafileio); String PATH = Environment.getDataDirectory().toString(); writefile3("fcafca.bin", "sadfasdfasd"); // final TextView txtfca = (TextView) findViewById(R.id.fcatext); } private void writefile1(File filefca, String content) { try { PrintWriter outputfca = new PrintWriter(filefca); outputfca.print(content); outputfca.flush(); outputfca.close(); } catch (Exception e) { e.printStackTrace(); } } private void writefile2(File filefca, String content) { try { FileOutputStream outputfca = new FileOutputStream(filefca); byte[] bytes = content.getBytes(); outputfca.write(bytes); outputfca.flush(); outputfca.close(); } catch (Exception e) { e.printStackTrace(); } } private void writefile3(String fileName, String message) { try { FileOutputStream fos = openFileOutput(fileName, MODE_APPEND); PrintStream ps = new PrintStream(fos); ps.println(message); fos.close(); } catch (Exception e) { e.printStackTrace(); } } } |
|
writefile1
writefile2 writefile3 都是写文件的方法,可都不行! |
|
/data这一级目录不能直接操作吧?
WRITE_EXTERNAL_STORAGE要是没记错,只能操作 |
|
你的 写权限 加了没?
|
|
如果不是缓存文件,使用
this.getFilesDir(); 如果是缓存文件,使用 this.getCacheDir(); 上面两个接口, |
|
15分 |
权限加了吗?
<uses-permission android:name=”android.permission.MOUNT_UNMOUNT_FILESYSTEMS”/> <uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE”/> |
嗯,之前是没有加,但加了之后也还是不行啊。 |
|
是的,得到了该路径了,但就算往那里面写也不行。手机的文件浏览器根本搜不到。 |
|
手机的文件浏览器 一般是只能看到外部存储区的文件,除非你有root过了,否则是看不到/data下面的文件的。 |
|
25分 |
我用你的writefile3 这个函数是过了,是可以写成功的,你自己看看是不是哪里还有问题,另外因为你写的不是外部存储,所以 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 这两个权限不需要加应该也能写成功 |
谢谢了,我这边还是不行。我实验室其他同学也很奇怪。我今天回去安个SD卡试试吧。 |