Android写入txt文件

2024-12-03 19:33:11
推荐回答(2个)
回答1:

分以下几个步骤:

  1. 首先对manifest注册SD卡读写权限 

    AndroidManifest.xml 
     

    package="com.tes.textsd" 
    android:versionCode="1" 
    android:versionName="1.0" > 
    android:minSdkVersion="8" 
    android:targetSdkVersion="16" /> 
     
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    android:name="com.tes.textsd.FileOperateActivity" 
    android:label="@string/app_name" > 
     
     
     
     
     
     
  2. 创建一个对SD卡中文件读写的类 

    FileHelper.java 
    /** 
    * @Title: FileHelper.java 
    * @Package com.tes.textsd 
    * @Description: TODO(用一句话描述该文件做什么) 
    * @author Alex.Z 
    * @date 2013-2-26 下午5:45:40 
    * @version V1.0 
    */ 
    package com.tes.textsd; 
    import java.io.DataOutputStream; 
    import java.io.File; 
    import java.io.FileOutputStream; 
    import java.io.FileWriter; 
    import java.io.FileInputStream; 
    import java.io.FileNotFoundException; 
    import java.io.IOException; 
    import android.content.Context; 
    import android.os.Environment; 
    public class FileHelper { 
    private Context context; 
    /** SD卡是否存在**/ 
    private boolean hasSD = false; 
    /** SD卡的路径**/ 
    private String SDPATH; 
    /** 当前程序包的路径**/ 
    private String FILESPATH; 
    public FileHelper(Context context) { 
    this.context = context; 
    hasSD = Environment.getExternalStorageState().equals( 
    android.os.Environment.MEDIA_MOUNTED); 
    SDPATH = Environment.getExternalStorageDirectory().getPath(); 
    FILESPATH = this.context.getFilesDir().getPath(); 

    /** 
    * 在SD卡上创建文件 

    * @throws IOException 
    */ 
    public File createSDFile(String fileName) throws IOException { 
    File file = new File(SDPATH + "//" + fileName); 
    if (!file.exists()) { 
    file.createNewFile(); 

    return file; 

    /** 
    * 删除SD卡上的文件 

    * @param fileName 
    */ 
    public boolean deleteSDFile(String fileName) { 
    File file = new File(SDPATH + "//" + fileName); 
    if (file == null || !file.exists() || file.isDirectory()) 
    return false; 
    return file.delete(); 

    /** 
    * 写入内容到SD卡中的txt文本中 
    * str为内容 
    */ 
    public void writeSDFile(String str,String fileName) 

    try { 
    FileWriter fw = new FileWriter(SDPATH + "//" + fileName); 
    File f = new File(SDPATH + "//" + fileName); 
    fw.write(str); 
    FileOutputStream os = new FileOutputStream(f); 
    DataOutputStream out = new DataOutputStream(os); 
    out.writeShort(2); 
    out.writeUTF(""); 
    System.out.println(out); 
    fw.flush(); 
    fw.close(); 
    System.out.println(fw); 
    } catch (Exception e) { 


    /** 
    * 读取SD卡中文本文件 

    * @param fileName 
    * @return 
    */ 
    public String read()SDFile(String fileName) { 
    StringBuffer sb = new StringBuffer(); 
    File file = new File(SDPATH + "//" + fileName); 
    try { 
    FileInputStream fis = new FileInputStream(file); 
    int c; 
    while ((c = fis.read()) != -1) { 
    sb.append((char) c); 

    fis.close(); 
    } catch (FileNotFoundException e) { 
    e.printStackTrace(); 
    } catch (IOException e) { 
    e.printStackTrace(); 

    return sb.toString(); 

    public String getFILESPATH() { 
    return FILESPATH; 

    public String getSDPATH() { 
    return SDPATH; 

    public boolean hasSD() { 
    return hasSD; 

    }
  3. 写一个用于检测读写功能的的布局 

    main.xml 
     

    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 
    android:id="@+id/hasSDTextView" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="hello" /> 
    android:id="@+id/SDPathTextView" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="hello" /> 
    android:id="@+id/FILESpathTextView" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="hello" /> 
    android:id="@+id/createFileTextView" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="false" /> 
    android:id="@+id/readFileTextView" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="false" /> 
    android:id="@+id/deleteFileTextView" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="false" /> 
  4. 就是UI的类了

    FileOperateActivity.class 
    /** 
    * @Title: FileOperateActivity.java 
    * @Package com.tes.textsd 
    * @Description: TODO(用一句话描述该文件做什么) 
    * @author Alex.Z 
    * @date 2013-2-26 下午5:47:28 
    * @version V1.0 
    */ 
    package com.tes.textsd; 
    import java.io.IOException; 
    import android.app.Activity; 
    import android.os.Bundle; 
    import android.widget.TextView; 
    public class FileOperateActivity extends Activity { 
    private TextView hasSDTextView; 
    private TextView SDPathTextView; 
    private TextView FILESpathTextView; 
    private TextView createFileTextView; 
    private TextView readFileTextView; 
    private TextView deleteFileTextView; 
    private FileHelper helper; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    hasSDTextView = (TextView) findViewById(R.id.hasSDTextView); 
    SDPathTextView = (TextView) findViewById(R.id.SDPathTextView); 
    FILESpathTextView = (TextView) findViewById(R.id.FILESpathTextView); 
    createFileTextView = (TextView) findViewById(R.id.createFileTextView); 
    readFileTextView = (TextView) findViewById(R.id.readFileTextView); 
    deleteFileTextView = (TextView) findViewById(R.id.deleteFileTextView); 
    helper = new FileHelper(getApplicationContext()); 
    hasSDTextView.setText("SD卡是否存在:" + helper.hasSD()); 
    SDPathTextView.setText("SD卡路径:" + helper.getSDPATH()); 
    FILESpathTextView.setText("包路径:" + helper.getFILESPATH()); 
    try { 
    createFileTextView.setText("创建文件:" 
    + helper.createSDFile("test.txt").getAbsolutePath()); 
    } catch (IOException e) { 
    e.printStackTrace(); 

    deleteFileTextView.setText("删除文件是否成功:" 
    + helper.deleteSDFile("xx.txt")); 
    helper.writeSDFile("1213212", "test.txt"); 
    readFileTextView.setText("读取文件:" + helper.readSDFile("test.txt")); 

    }

回答2:

得到流后用基本的java api的IO操作就可以完成文件存储了
FileOutputStream fs = new FileOutputStream("a.txt",true);
再写入你的内容就行了,不用我说具体怎么做了吧,能写程序到这样,后面你肯定知道的了