zoukankan      html  css  js  c++  java
  • Android读写文件

    一、       从resource中的raw文件夹中获取文件并读取数据(资源文件只能读不能写)

    String res = ""
    try
    InputStream in = getResources().openRawResource(R.raw.bbi); 
    //\Test\res\raw\bbi.txt,
       int length =in.available();       
       byte [] buffer = new byte[length];        
       in.read(buffer);         
       //res = EncodingUtils.getString(buffer,"UTF-8");
       //res = EncodingUtils.getString(buffer,"UNICODE"); 
       res = EncodingUtils.getString(buffer, "BIG5"); 
       //bbi.txt的编码类型选择合适的编码,如果不调整会乱码
       in.close();            
       }catch(Exception e){ 
          e.printStackTrace();         
       } 
    myTextView.setText(res);//把得到的内容显示在TextView
     
    二、       从asset中获取文件并读取数据(资源文件只能读不能写)
    String fileName = "yan.txt"//文件名字
    String res=""
    try
       InputStream in =getResources().getAssets().open(fileName);
       // \Test\assets\yan.txt这里有这样的文件存在
       int length =in.available();         
    byte [] buffer = new byte[length];        
    in.read(buffer);            
    res = EncodingUtils.getString(buffer, "UTF-8");     
    }catch(Exception e){ 
          e.printStackTrace();         
       }
     
    三、       从sdcard中去读文件,首先要把文件通过\android-sdk-windows\tools\adb.exe把本地计算机上的文件copy到sdcard上去,adb.exe push e:/Y.txt /sdcard/, 不可以用adb.exe push e:\Y.txt \sdcard\ 同样: 把仿真器上的文件copy到本地计算机上用: adb pull./data/data/com.tt/files/Test.txt e:/
     
    String fileName = "/sdcard/Y.txt";
    //也可以用StringfileName = "mnt/sdcard/Y.txt";
    String res="";     
    try
    FileInputStream fin = new FileInputStream(fileName);
    //FileInputStream fin = openFileInput(fileName);  
    //用这个就不行了,必须用FileInputStream
        int
     length =fin.available(); 
        byte [] buffer = new byte[length]; 
        fin.read(buffer);     
        res= EncodingUtils.getString(buffer, "UTF-8"); 
        fin.close();     
        }catch(Exception e){ 
               e.printStackTrace(); 

    myTextView.setText(res);
     
    四、       写文件, 一般写在\data\data\com.test\files\里面,打开DDMS查看file explorer是可以看到仿真器文件存放目录的结构的
       String fileName = "TEST.txt";
       String message = "FFFFFFF11111FFFFF" ;
    writeFileData(fileName,message);
      
       public voidwriteFileData(StringfileName,String message){ 
           try
            FileOutputStream fout=openFileOutput(fileName, MODE_PRIVATE);
            byte [] bytes = message.getBytes(); 
            fout.write(bytes); 
             fout.close(); 
            } 
           catch(Exception e){ 
            e.printStackTrace(); 
           } 
       }    
     
    五、       写, 读data/data/目录(相当AP工作目录)上的文件,用openFileOutput
       //写文件在./data/data/com.tt/files/下面
       public voidwriteFileData(StringfileName,String message){ 
           try
            FileOutputStream fout=openFileOutput(fileName, MODE_PRIVATE);
            byte [] bytes = message.getBytes(); 
            fout.write(bytes); 
             fout.close(); 
            } 
           catch(Exception e){ 
            e.printStackTrace(); 
           } 
       }
    //-------------------------------------------------------
    //读文件在./data/data/com.tt/files/下面
       public StringreadFileData(String fileName){ 
            String res=""
            try
             FileInputStreamfin = openFileInput(fileName); 
             int length =fin.available(); 
             byte [] buffer = new byte[length]; 
             fin.read(buffer);     
             res =EncodingUtils.getString(buffer, "UTF-8"); 
             fin.close();     
            } 
            catch(Exception e){ 
             e.printStackTrace(); 
            } 
            return res; 
        }   
    六、       写, 读sdcard目录上的文件,要用FileOutputStream, 不能用openFileOutput
     
        //写在/mnt/sdcard/目录下面的文件
       public voidwriteFileSdcard(StringfileName,String message){ 
           try
            //FileOutputStream fout =openFileOutput(fileName, MODE_PRIVATE);
           FileOutputStream fout = newFileOutputStream(fileName);
            byte [] bytes = message.getBytes(); 
            fout.write(bytes); 
             fout.close(); 
            } 
           catch(Exception e){ 
            e.printStackTrace(); 
           } 
       }
      
       //读在/mnt/sdcard/目录下面的文件
       public StringreadFileSdcard(String fileName){
            String res=""
            try
             FileInputStream fin= new FileInputStream(fileName); 
             int length =fin.available(); 
             byte [] buffer = new byte[length]; 
             fin.read(buffer);     
             res =EncodingUtils.getString(buffer, "UTF-8"); 
             fin.close();     
            } 
            catch(Exception e){ 
             e.printStackTrace(); 
            } 
            return res; 
       }
     
    注: openFileOutput是在raw里编译过的,FileOutputStream是任何文件都可以
     


  • 相关阅读:
    淘淘商城项目分析报告
    LDAP入门
    spring APO的简单理解
    MySQL数据库的导入导出
    servlet CDI
    Result 架构
    java的设计模型
    JavaEE人力资源管理系统测试报告——许珍源、朱国辉小组
    部分代码片段——人力资源管理系统
    期末项目——人力资源管理系统需求分析
  • 原文地址:https://www.cnblogs.com/jeakon/p/2816805.html
Copyright © 2011-2022 走看看