OutputStreamWriter.append在Android编程中不能向文本文件中添加文本

4

文件 文件; 文件输出流 文件输出流;

    final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
    mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
    final List pkgAppsList = getPackageManager().queryIntentActivities(mainIntent, 0);

    for (Object obj : pkgAppsList) {
        ResolveInfo resolveInfo = (ResolveInfo) obj;
        PackageInfo packageInfo = null;
        try
        {

            file = new File(Environment.getExternalStorageDirectory(),"MyResearchFile.txt");
            FileOutputStream fos = new FileOutputStream(file);
            OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fos);


            packageInfo = getPackageManager().getPackageInfo(resolveInfo.activityInfo.packageName, PackageManager.GET_PERMISSIONS);
            String[] requestedPermissions = packageInfo.requestedPermissions;
            final PackageManager pm = getApplicationContext().getPackageManager();
            ApplicationInfo ai;
            ai = pm.getApplicationInfo(resolveInfo.activityInfo.packageName,0);
            final String applicationName = (String) (ai != null ? pm.getApplicationLabel(ai) : "unknown");

            for (int i = 0,j=0; i < requestedPermissions.length; i++,j++)
            {

                if(requestedPermissions[i].contains("READ_CONTACTS") )
                {
                    outputStreamWriter.append((applicationName + " requested " + requestedPermissions[i]).toString());
                }
                if(requestedPermissions[i].contains("WRITE_CONTACTS"))
                {
                    outputStreamWriter.append((applicationName + " requested " + requestedPermissions[i]).toString());

                }
            }
            outputStreamWriter.flush();
            outputStreamWriter.close();

问题:append函数没有将文本附加到文本文件中。我正在开发一个Android应用程序,该应用程序将所有权限详细信息写入文本文件。

2个回答

12

使用带有追加标志的构造函数。

FileOutputStream fos = new FileOutputStream(file, true);

@skr 你可以接受答案来奖励作者。 - seinecle

0

在Android中使用OutputStreamWriter,可以通过添加Context.MODE_APPEND来追加文本,如下所示:

OutputStreamWriter outputStreamWriter = new OutputStreamWriter(context.openFileOutput("test.txt", Context.MODE_APPEND));

例如,这个函数:
   public void writeToFile(String data, Context context) {

        try {
            OutputStreamWriter outputStreamWriter = new OutputStreamWriter(context.openFileOutput("test.txt", Context.MODE_APPEND));
            outputStreamWriter.write(data);
            outputStreamWriter.close();
            System.out.println(data + " data appended to file");
        }
        catch (Exception e) {
            System.out.println("Error writing file");
            System.out.println(e);
        }
   

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接