在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,然后我将指向控制器的路径传递给需要使用它的实例。所以我得到了我的绝对路径,我可以确定它是有效的。