Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.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 IO中创建文本文件_Android_Adb_Text Files - Fatal编程技术网

在Android IO中创建文本文件

在Android IO中创建文本文件,android,adb,text-files,Android,Adb,Text Files,我试图在android手机上制作一个文本文件,并在需要时填充它。很明显,我遇到了一些问题,我想看看是否有人能看看我目前的情况 import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExceptio

我试图在android手机上制作一个文本文件,并在需要时填充它。很明显,我遇到了一些问题,我想看看是否有人能看看我目前的情况

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

public class ViewLog extends Activity {

    private TextView tv;
    private static final String TAG = "MEDIA";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        tv = (TextView) findViewById(R.id.TextView01);

        CreateExternalLogFile("I am adding something into the text file!");
    }

private void CreateExternalLogFile(String s){
    File root = android.os.Environment.getExternalStorageDirectory(); 
    tv.append("\nExternal file system root: "+root);
    File dir = new File (root.getAbsolutePath() + "/logs");
    dir.mkdirs(); 
    File file = new File(dir,"log.txt");
    try {
        FileOutputStream f = new FileOutputStream(file,true); //True = Append to file, false = Overwrite
        PrintWriter pw = new PrintWriter(f);
        System.out.println(s);
        pw.println(s);
        pw.flush();
        pw.close();
        f.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        Log.i(TAG, "******* File not found. Did you" +
                        " add a WRITE_EXTERNAL_STORAGE permission to the manifest?");
    } catch (IOException e) {
        e.printStackTrace();
    }   
    tv.append("\nFile written to \n"+file);


}
}

任何帮助都将不胜感激。我使用adb查找该文件,但该文件未被创建。

编辑:该功能正常-刚刚测试过

确保清单中也有:

 package com.example.fileio;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.widget.TextView;

public class FilioActivity extends Activity {

    private TextView tv;
    private static final String TAG = "MEDIA";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        tv = (TextView) findViewById(R.id.TextView01);

        CreateExternalLogFile("I am adding something into the text file!");
    }

private void CreateExternalLogFile(String s){
    File sdCard = Environment.getExternalStorageDirectory();
    File dir = new File (sdCard.getAbsolutePath());
    dir.mkdirs();
    File file = new File(dir, "filename.txt");
    tv.append("\nExternal file system root: "+ dir);
    try {
        FileOutputStream f = new FileOutputStream(file,false); //True = Append to file, false = Overwrite
        PrintStream p = new PrintStream(f);
        p.print(s);
        p.close();
        f.close();


    } catch (FileNotFoundException e) {
        e.printStackTrace();
        Log.i(TAG, "******* File not found. Did you" +
                        " add a WRITE_EXTERNAL_STORAGE permission to the manifest?");
    } catch (IOException e) {
        e.printStackTrace();
    }   
    tv.append("\nFile written to \n"+file);


}
}

我想将文件存储在SD卡上,这就是我选择.getExternalStorageDirectory()的原因;当使用adb(通过仿真器查看)访问文件路径时,它应该位于“/mnt/sdcard/nullwall_logs/log.txt”目录中没有任何内容。此外,代码通过try块,没有输入任何异常。刚刚编辑了我的帖子,测试以确保代码正常工作。祝你好运,如果你需要更多的帮助,请告诉我:)非常感谢!我错过了什么?你还说确保你的舱单上有。吃什么?:]谢谢Woops,编辑它-现在应该包括权限:)别忘了选择我的答案;)我不完全确定我更改了什么,我认为只是环境.getExternalStorageDirectory()以及清单更改。这是我看到的屏幕。希望这有帮助!非常感谢你的帮助。我所看到的是:确保你的舱单上也有。