android 中读写xml文件时取得路径的方法/data/sdcard/src


 
package com.eboy.readwritexml;  
  
import java.io.File;  
import java.io.FileNotFoundException;  
import java.io.FileOutputStream;  
import java.io.IOException;  
import java.io.InputStream;  
import java.util.ArrayList;  
import java.util.List;  
  
import com.eboy.domain.Person;  
import com.eboy.readwritexml.R;  
import com.eboy.service.PersonService;  
  
import android.os.Bundle;  
import android.app.Activity;  
import android.view.Menu;  
import android.view.View;  
import android.view.View.OnClickListener;  
import android.widget.Button;  
import android.widget.Toast;  
  
public class MainActivity extends Activity {  
    Button btn1;  
    Button btn2;  
  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
  
        btn1 = (Button) findViewById(R.id.button1);// read  
        btn2 = (Button) findViewById(R.id.button2);// write  
        btn1.setOnClickListener(listener);  
        btn2.setOnClickListener(writeListener);  
    }  
  
    //写入按钮的监听  
    View.OnClickListener writeListener = new OnClickListener() {  
  
        public void onClick(View paramView) {  
            // TODO Auto-generated method stub  
            List<Person> persons = new ArrayList<Person>();  
            persons.add(new Person(11, "aaa", 25));  
            persons.add(new Person(22, "bbb", 35));  
            persons.add(new Person(33, "ccc", 45));  
  
            //往data/data/本工程/files/person1.xml中写入的路径  
//           File xmlFile = new File(MainActivity.this.getFilesDir(), "/person1.xml");  
//           System.out.println("路径为:"+MainActivity.this.getFilesDir()+"/person1.xml");  
              
            //向sdcard中写入的路径  
            //在往sdcard中写入文件时,在manifest.xml中加一个权限
            //<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
            String file_path = File.separator + "sdcard" + File.separator + "aaa.xml";  
            File xmlFile = new File(file_path);
              
            try {  
                FileOutputStream outStream = new FileOutputStream(xmlFile);  
                PersonService.save(persons, outStream);  
                System.out.println("写入成功");  
            } catch (Exception e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            }  
        }  
    };  
  
    //读取的监听  
    View.OnClickListener listener = new OnClickListener() {  
  
        public void onClick(View v) {  
            // TODO Auto-generated method stub  
              
            //读取sdcard中内容的路径  
            String file_path = File.separator + "sdcard" + File.separator + "aaa.xml";  
            InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(file_path);  
              
            //读取本工程下面的src文件夹下的person.xml文件  
//          InputStream inputStream =  getClass().getClassLoader().getResourceAsStream("person.xml");  
              
            List<Person> persons;  
            try {  
                //读取/data/data/youPackageName/files的person1.xml文件  
                //打开/data/data/youPackageName/files的File。返回的是inputStream或者outputStream  
                //InputStream inputStream = MainActivity.this.openFileInput("person1.xml");  
                  
                persons = PersonService.getPersons(inputStream);  
                for (Person person : persons) {  
                    Toast.makeText(getApplicationContext(), person.toString(),  
                            Toast.LENGTH_SHORT).show();  
                    System.out.println("22222");  
                }  
            } catch (Exception e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            }  
        }  
    };  
  
    @Override  
    public boolean onCreateOptionsMenu(Menu menu) {  
        getMenuInflater().inflate(R.menu.activity_main, menu);  
        return true;  
    }  
  
}  

参考自:http://blog.csdn.net/vvqiu/article/details/8551036

内部存储路径为/data/data/youPackageName/,下面讲解的各路径都是基于你自己的应用的内部存储路径下。所有内部存储中保存的文件在用户卸载应用的时候会被删除。
一、 files
1. Context.getFilesDir(),该方法返回/data/data/youPackageName/files的File对象。
2. Context.openFileInput()与Context.openFileOutput(),只能读取和写入files下的文件,返回的是FileInputStream和FileOutputStream对象。
3. Context.fileList(),返回files下所有的文件名,返回的是String[]对象。
4. Context.deleteFile(String),删除files下指定名称的文件。
二、cache
1. Context.getCacheDir(),该方法返回/data/data/youPackageName/cache的File对象。
三、custom dir

getDir(String name, int mode),返回/data/data/youPackageName/下的指定名称的文件夹File对象,如果该文件夹不存在则用指定名称创建一个新的文件夹。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值