Android写入txt文件

publicclassMainActivityextendsActivity{@OverridepublicvoidonCreate(BundlesavedInstanc... public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv=new TextView(this);
String myString =null;
try{
URL myURL=new URL("http://172.17.12.81/helloworld?key=0");
URLConnection ucon = myURL.openConnection();
InputStream is = ucon.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while((current = bis.read()) != -1){
baf.append((byte)current);
}
myString = EncodingUtils.getString(baf.toByteArray(), "UTF-8");

}
catch(Exception e){
myString = e.getMessage();
}
}
通过URLConnection读取到的数据,怎样才能写入到本地的txt文件中呢?
展开
 我来答
千锋教育
2015-12-09 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部

分以下几个步骤:

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

    AndroidManifest.xml 
    <?xml version="1.0" encoding="utf-8"?> 
    <manifest xmlns:android="

    package="com.tes.textsd" 
    android:versionCode="1" 
    android:versionName="1.0" > 
    <uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="16" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
    android:name="com.tes.textsd.FileOperateActivity" 
    android:label="@string/app_name" > 
    <intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
    </activity> 
    </application> 
    </manifest>
  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 
    <?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="

    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 
    <TextView 
    android:id="@+id/hasSDTextView" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="hello" /> 
    <TextView 
    android:id="@+id/SDPathTextView" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="hello" /> 
    <TextView 
    android:id="@+id/FILESpathTextView" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="hello" /> 
    <TextView 
    android:id="@+id/createFileTextView" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="false" /> 
    <TextView 
    android:id="@+id/readFileTextView" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="false" /> 
    <TextView 
    android:id="@+id/deleteFileTextView" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="false" /> 
    </LinearLayout>
  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")); 

    }
我很担心你
2010-08-06 · TA获得超过263个赞
知道小有建树答主
回答量:252
采纳率:0%
帮助的人:161万
展开全部
得到流后用基本的java api的IO操作就可以完成文件存储了
FileOutputStream fs = new FileOutputStream("a.txt",true);
再写入你的内容就行了,不用我说具体怎么做了吧,能写程序到这样,后面你肯定知道的了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式