浏览 11692 次
锁定老帖子 主题:File 读写
精华帖 (0) :: 良好帖 (0) :: 新手帖 (5) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-01-18   最后修改:2010-01-18

File 读写

 

[功能]

因为文件读写很平常 使用打算把这个功能写出辅助类的形式 以便以后方便使用 就是:FileIOHelper

 

 

[代码]

1.  定义指定的File 以及其上的 FileInputStream FileOutputStream

Context context;
	File file;
	
	FileInputStream fin;
	FileOutputStream fout;
	
	public FileIOHelper(Context c, String name,String path) throws IOException{
		context = c;
		file = new File(path,name);
		file.createNewFile();
		
		fin = new FileInputStream(file);
		fout = new FileOutputStream(file);
	}

 

 

 

2. 文件写

public void wrire(String s) throws IOException{
		fout.write(s.getBytes());
		fout.close();
	}

 

 

 

3. 文件读

public byte[] read(int s,int l) throws IOException{
		byte[] save = new byte[l];
		fin.read(save, s, l);
		
		return save;
	}

 

 

4. 编码转换

public String encode(byte[] array){
		return EncodingUtils.getString(array,TEXT_ENCODING);
	}

 

 

5. 文件长度

public int length(){
		return (int)file.length();
	}

 

 

 

6. 如何使用FileIOHelper

public class FileIOUsage extends Activity {
	public final static String NAME = "griffinshi.txt";
	public final static String PATH = "data/data/com.android.FileIO";
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.main);
        
        try {
			FileIOHelper helper = new FileIOHelper(this,NAME,PATH );
			
			String string = "Hello to Gryphone!";
			
			helper.wrire(string);
			
			byte[] array = helper.read(0, helper.length());
			
			String data = helper.encode(array);
			
			TextView tv = new TextView(this);
			tv.setText(data);
			
			setContentView(tv);
			
        } catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
}

 

 

 

7. 其他待解决问题

* 文件似乎只支持一次写 而不支持追加操作 不知何故 以后有时间在回头看看

 

8. 生成的文件:

E:\android-dev\sdk\android-sdk-windows-1.5_r2\tools>adb shell
# cd data
cd data
# cd data
cd data
# cd com.android.FileIO
cd com.android.FileIO
# ls
ls
griffinshi.txt
lib

 

 

9. 运行结果:

 

   发表时间:2010-03-12  
FileOutputStream fout = new FileOutputStream(file,MODE_APPEND);

这样是否可以追加?
0 请登录后投票
   发表时间:2010-03-15  
是的 这样是可以追加的
0 请登录后投票
   发表时间:2010-03-24  
樓主 小弟愚味 看過很多文章有說過關於IO的
但是PATH 都是在DATA/DATA/PACKAGE_NAME/FILES/內
我在樓主的檔案中或是自己的都沒有這個檔案 百思不得其解
0 请登录后投票
   发表时间:2010-06-22  
楼上你说的那个PACKAGE_NAME  是指你建立的 项目的具体的包名
这个在AndroidManifest里面有定义的
你可以新建个项目  然后创建个文件  在DDMS里面就能查看了
0 请登录后投票
   发表时间:2010-06-23  
android里面这样用file不是好方法。
一般用
context.getFile();
context.getFileStream();//具体方法名字忘记了。
之类的获取context的文件。不提倡使用绝对路径获取文件。
0 请登录后投票
   发表时间:2010-08-26  
getDir(String name, int mode)
getFilesDir()
0 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics