这只是创建和编写文件到项目目录的早期阶段测试。我认为这会很快,但要么我做错了,要么我没有正确更新?
我想做的就是能够动态创建文件并将其写入我的原始文件夹。
我使用了几种方法来处理其他事情,例如获取对象的ArrayList,使用for循环单独获取它们,然后使用“write”写入文件。
这是我的代码:我想要创建和写入的文件称为输出的txt文件。
我真的很感谢有人为我看这个,非常感谢你!
//for writing file...
public static void writeGrids(List<Grid> grids)
{
for(int i = 0; i < grids.size(); i++)
{
try {
write(grids.get(i));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
static void write(Grid grid) throws IOException
{
try
{
FileWriter fstream = new FileWriter("/My Project/res/raw/output.txt");
BufferedWriter out = new BufferedWriter(fstream);
//FILE DIR!!!!!!
out.write(grid.gridNickName + ";" + grid.gridName + ";" +
grid.firstName + ";" + grid.lastName + ";" +
grid.password + ";" + grid.loginURI + ";");
out.close();
}
catch (Exception e)
{
System.err.println("Error: " + e.getMessage());
}
}
这是尝试将内容保存到内部存储的更新版本。这会是一个理想的解决方案吗?
更新代码:
//for writing file...
public void writeGrids(List<Grid> grids)
{
for(int i = 0; i < grids.size(); i++)
{
try {
write(grids.get(i));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
void write(Grid grid) throws IOException
{
try
{
FileOutputStream fos;
String FILENAME = "InternalString";
fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
String data = grid.getGridNickName() + ";" + grid.getGridName() + ";" +
grid.getFirstName() + ";" + grid.getLastName() + ";" +
grid.getPassword() + ";" + grid.getLoginURI() + ";";
fos.write(data.getBytes());
fos.close();
}
catch (Exception e)
{
System.err.println("Error: " + e.getMessage());
}
}
用户会调用write方法来启动这样的事情.. writeGrids(myNewArrayList);
答案 0 :(得分:0)
让我谷歌那个为你
http://developer.android.com/guide/topics/data/data-storage.html#filesExternal
您需要获得许可并致电getExternalStorage()
答案 1 :(得分:0)
“我的项目”文件夹仅存在于您的开发计算机上,因此无法由设备编写。虽然res / raw子文件夹的内容最终会在设备上显示,但它们会以只读(就应用程序的用户ID而言)形式结束。
您需要将运行时可更改的数据存储在应用程序内部存储目录中 - 查找getFileDir()和相关方法
或外部存储(即SD卡)(如果存在)。当且仅当您要写入SD卡时,您需要应用程序清单中的SD卡权限。
如果要将数据放在其中任何一个位置的子目录中,则必须确保包含文件位置的所有目录实际存在,否则创建它们。
如果要打包也可以更改的数据,则必须先将打包数据复制到这两个可以获得可更改数据的位置之一。