0

我想将我的字符串值存储为文本文件,因此我声明为

String item1, item2;
//code...
item1=arraylist.getItem1();
item2=arraylist.getItem2();
FileOutputStream fos;
try {
fos = openFileOutput(item1, Context.MODE_PRIVATE);
fos.write(item2.getBytes());
fos.close();
} 
catch (FileNotFoundException e) 
{
e.printStackTrace();
} 
catch (IOException e) 
{
// TODO Auto-generated catch block
e.printStackTrace();
}

//code....

但是我得到一个错误

1)java.lang.illegalargumentexception file contains a path separator

并且我的数据/数据/我的包目录中的文本文件无法打开并显示一条消息

opendir failed permission denied android adb

这里做错了什么以及如何在文本文件中存储和查看字符串的值。

4

2 回答 2

0

1) java.lang.illegalargumentexception 文件包含路径分隔符

openFileOutput() 不接受路径,只接受文件名。如果要使用路径创建文件,请尝试:

BufferedWriter writer;
try {
    File file = new File(filePath);
    FileWriter fileWriter = new FileWriter(file);
    writer = new BufferedWriter(fileWriter);
    ...
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

2)opendir失败权限被拒绝android adb

在android中,您无法访问手机中的文件。如果您需要访问该文件,则需要将其保存在可访问的位置,例如 SD 卡。

于 2013-11-14T10:18:30.033 回答
0

最后我解决了这个问题。我创建了一个新类并在上一个类中实例化了这个类,我的编码是:

public void Class1(String item1, String item2, Context context)
        {
         FileOutputStream fos;
            try {
                fos = context.openFileOutput("newfile.txt", Context.MODE_PRIVATE);
                fos.write(item1.getBytes());
                fos.write(item2.getBytes());
                fos.close();
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

我将这个类实例化为

Class1 main = new Class1();
tracklog.Logger(item1, item2,this);

因此非法参数异常错误得到了解决。希望这可以帮助某人:-)

于 2013-11-15T05:56:58.963 回答