Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android上创建FileOutputStream以创建本地文件,而不使用上下文_Android_Io_Android Context - Fatal编程技术网

在Android上创建FileOutputStream以创建本地文件,而不使用上下文

在Android上创建FileOutputStream以创建本地文件,而不使用上下文,android,io,android-context,Android,Io,Android Context,我可以用 FileOutputStream openFileOutput("file.txt", MODE_PRIVATE); 然后将一个文件写入/data/data/com.example/files/。如果我尝试在不使用上下文的情况下创建FileOutputStream,就像这样 FileOutputStream outputStream = new FileOutputStream(file) 。。。然后我得到这个错误:java.io.FileNotFoundException:/fi

我可以用

FileOutputStream openFileOutput("file.txt", MODE_PRIVATE);
然后将一个文件写入/data/data/com.example/files/。如果我尝试在不使用上下文的情况下创建FileOutputStream,就像这样

FileOutputStream outputStream = new FileOutputStream(file)
。。。然后我得到这个错误:java.io.FileNotFoundException:/file.txt只读文件系统

我猜这是因为使用新构造函数将文件名解释为绝对路径,而openFileOutput将其解释为相对于GetFileDir返回的目录。然而,getFilesDir也是一种上下文方法


为了在本地保存文件,我必须在上下文中工作,还是有一种与上下文无关的方法

您可以向文件构造函数传递绝对路径,但假设有效路径是错误的。最好的方法是从上下文中发现它,任何可以启动代码运行的东西在进入其生命周期方法后都会有一个,然后挂起该字符串。这并不是说它会在您的流程生命周期内发生变化,但可以想象,它会随着新的Android版本或不同的设备而发生变化。@Chris谢谢!我在一个有理由访问上下文的实例中使用了context.getDir,然后我将指向控制器的路径传递给需要使用它的实例。所以我得到了我的绝对路径,我可以确定它是有效的。