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

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

    String res = ""; 
    
    try{ 
    InputStream in = getResources().openRawResource(R.raw.bbi); 
    //在Test
    es
    awbi.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上

    2、asset中获取文件并读取数据(资源文件只能读不能写)

    String fileName = "yan.txt"; //文件名字
    String res=""; 
    try{ 
       InputStream in = getResources().getAssets().open(fileName);
       // Testassetsyan.txt这里有这样的文件存在
       int length = in.available();         
    byte [] buffer = new byte[length];        
    in.read(buffer);            
    res = EncodingUtils.getString(buffer, "UTF-8");     
    }catch(Exception e){ 
          e.printStackTrace();         
       }

    3、       sdcard中去读文件,

    首先要把文件通过android-sdk-windows oolsadb.exe把本地计算机上的文件copysdcard上去,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";
    //也可以用String fileName = "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);

    3、写文件, 一般写在datadatacom.testfiles里面,

    打开DDMS查看file explorer是可以看到仿真器文件存放目录的结构的

       String fileName = "TEST.txt";
       String message = "FFFFFFF11111FFFFF" ;
       <u>writeFileData</u>(fileName, message);
       public voidwriteFileData(String fileName,String message){ 
           try{ 
            FileOutputStream fout =openFileOutput(fileName, MODE_PRIVATE);
            byte [] bytes = message.getBytes(); 
            fout.write(bytes); 
             fout.close(); 
            } 
           catch(Exception e){ 
            e.printStackTrace(); 
           } 
       }    

    5、  写、data/data/目录(相当AP工作目录)上的文件

    openFileOutput

       //写文件在./data/data/com.tt/files/下面
    
       public voidwriteFileData(String fileName,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 String readFileData(String fileName){ 
            String res=""; 
            try{ 
             FileInputStream fin = 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; 
    
        }   

    6、     写、sdcard目录上的文件

    要用FileOutputStream 不能用openFileOutput

     

        //写在/mnt/sdcard/目录下面的文件
    
       public voidwriteFileSdcard(String fileName,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 String readFileSdcard(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是任何文件都可以

    参考:http://dev.10086.cn/cmdn/wiki/index.php?doc-view-6017.html

  • 相关阅读:
    Dockerfile常用指令
    Maven相关命令
    CI-CD平台搭建过程整理
    边工作边刷题:70天一遍leetcode: day 28-1
    边工作边刷题:70天一遍leetcode: day 28
    边工作边刷题:70天一遍leetcode: day 29-1
    边工作边刷题:70天一遍leetcode: day 29
    边工作边刷题:70天一遍leetcode: day 30-1
    边工作边刷题:70天一遍leetcode: day 30
    边工作边刷题:70天一遍leetcode: day 31-4
  • 原文地址:https://www.cnblogs.com/wishchin/p/9200140.html
Copyright © 2011-2022 走看看