当前位置: 首页 > news >正文

大连网站建设佳熙科技公司/乐清网站建设

大连网站建设佳熙科技公司,乐清网站建设,深圳 seo 外贸网站建设 多语种,莆田有交做外贸网站的没概述 在android中的文件放在不同位置,它们的读取方式也有一些不同。 一、资源文件的读取: 1) 从resource的raw中读取文件数据: String res ""; try{ //得到资源中的Raw数据流InputStream in getResources().openRawResource(R.r…

概述

在android中的文件放在不同位置,它们的读取方式也有一些不同。

一、资源文件的读取:

1) 从resource的raw中读取文件数据:

String res = ""; 
try{ //得到资源中的Raw数据流InputStream in = getResources().openRawResource(R.raw.test); //得到数据的大小int length = in.available();       byte [] buffer = new byte[length];        //读取数据
    in.read(buffer);         //依test.txt的编码类型选择合适的编码,如果不调整会乱码 res = EncodingUtils.getString(buffer, "BIG5"); //关闭    
    in.close();            }catch(Exception e){ e.printStackTrace();         } 

 

2) 从resource的asset中读取文件数据

 

String fileName = "test.txt"; //文件名字 
String res=""; 
try{ //得到资源中的asset数据流InputStream in = getResources().getAssets().open(fileName); int length = in.available();         byte [] buffer = new byte[length];        in.read(buffer);            res = EncodingUtils.getString(buffer, "UTF-8");     }catch(Exception e){ e.printStackTrace();         } 

 

 

 

 

二、读写/data/data/<应用程序名>目录上的文件:

 

//写数据
public void writeFile(String fileName,String writestr{ try{ FileOutputStream fout =openFileOutput(fileName, MODE_PRIVATE); byte [] bytes = writestr.getBytes(); fout.write(bytes); fout.close(); } catch(Exception e){ e.printStackTrace(); } 
} //读数据
public String readFile(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; }   

 

 

三、读写SD卡中的文件。也就是/mnt/sdcard/目录下面的文件 :

 

//写数据到SD中的文件
public void writeFileSdcardFile(String fileName,String write_str){ try{ FileOutputStream fout = new FileOutputStream(fileName); byte [] bytes = write_str.getBytes(); fout.write(bytes); fout.close(); }catch(Exception e){ e.printStackTrace(); } } //读SD中的文件
public String readFileSdcardFile(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; 
} 

 

四、使用File类进行文件的读写:

 

//读文件
public String readSDFile(String fileName) {  File file = new File(fileName);  FileInputStream fis = new FileInputStream(file);  int length = fis.available(); byte [] buffer = new byte[length]; fis.read(buffer);     res = EncodingUtils.getString(buffer, "UTF-8"); fis.close();     return res;  
}  //写文件
public void writeSDFile(String fileName, String write_str){  File file = new File(fileName);  FileOutputStream fos = new FileOutputStream(file);  byte [] bytes = write_str.getBytes(); fos.write(bytes); fos.close(); 
} 

 

 

 

五、另外,File还有下面一些常用的操作:

 

String Name = File.getName();  //获得文件或文件夹的名称:
String parentPath = File.getParent();  获得文件或文件夹的父目录
String path = File.getAbsoultePath();//绝对路经
String path = File.getPath();//相对路经 
File.createNewFile();//建立文件  
File.mkDir(); //建立文件夹  
File.isDirectory(); //判断是文件或文件夹
File[] files = File.listFiles();  //列出文件夹下的所有文件和文件夹名
File.renameTo(dest);  //修改文件夹和文件名
File.delete();  //删除文件夹或文件

 

六、使用RandomAccessFile进行文件的读写:

RandomAccessFile的使用方法比较灵活,功能也比较多,可以使用类似seek的方式可以跳转到文件的任意位置,从文件指示器当前位置开始读写。
它有两种构造方法
new RandomAccessFile(f,"rw");//读写方式
new RandomAccessFile(f,"r");//只读方式

使用事例:

 

/* * 程序功能:演示了RandomAccessFile类的操作,同时实现了一个文件复制操作。 */  
package com.lwj.demo;  import java.io.*;  public class RandomAccessFileDemo {  public static void main(String[] args) throws Exception {  RandomAccessFile file = new RandomAccessFile("file", "rw");  // 以下向file文件中写数据  file.writeInt(20);// 占4个字节  file.writeDouble(8.236598);// 占8个字节  file.writeUTF("这是一个UTF字符串");// 这个长度写在当前文件指针的前两个字节处,可用readShort()读取  file.writeBoolean(true);// 占1个字节  file.writeShort(395);// 占2个字节  file.writeLong(2325451l);// 占8个字节  file.writeUTF("又是一个UTF字符串");  file.writeFloat(35.5f);// 占4个字节  file.writeChar('a');// 占2个字节  
  file.seek(0);// 把文件指针位置设置到文件起始处  // 以下从file文件中读数据,要注意文件指针的位置  System.out.println("——————从file文件指定位置读数据——————");  System.out.println(file.readInt());  System.out.println(file.readDouble());  System.out.println(file.readUTF());  file.skipBytes(3);// 将文件指针跳过3个字节,本例中即跳过了一个boolean值和short值。  
  System.out.println(file.readLong());  file.skipBytes(file.readShort()); // 跳过文件中“又是一个UTF字符串”所占字节,注意readShort()方法会移动文件指针,所以不用加2。  
  System.out.println(file.readFloat());  //以下演示文件复制操作  System.out.println("——————文件复制(从file到fileCopy)——————");  file.seek(0);  RandomAccessFile fileCopy=new RandomAccessFile("fileCopy","rw");  int len=(int)file.length();//取得文件长度(字节数)  byte[] b=new byte[len];  file.readFully(b);  fileCopy.write(b);  System.out.println("复制完成!");  }  
}  

 

总结:
1、apk中有两种资源文件,使用两种不同的方式进行打开使用。
raw使用InputStream in = getResources().openRawResource(R.raw.test);
asset使用InputStream in = getResources().getAssets().open(fileName);

这些数据只能读取,不能写入。
2、SD卡中的文件使用FileInputStream和FileOutputStream进行文件的操作。
3、存放在数据区(/data/data/..)的文件只能使用openFileOutput和openFileInput进行操作。
注意不能使用FileInputStream和FileOutputStream进行文件的操作。
4、RandomAccess类仅限于文件的操作,不能访问其他IO设备。它可以跳转到文件的任意位置,从当前位置开始读写。

 

转载于:https://www.cnblogs.com/hexinwei/p/3469352.html

http://www.lbrq.cn/news/1542205.html

相关文章:

  • 想自己做一个网站/关键词排名怎么查
  • 嘉兴的信息公司网站/专业网站推广引流
  • 一站式营销推广平台/高清的网站制作
  • 网站制作的知识/网络竞价托管公司
  • 湛江网站建设的软件/广告设计公司
  • 期货做程序化回测的网站/上海十大公关公司排名
  • 网络宣传的方法渠道/seo工作职位
  • phpweb绿色大气茶叶网站源码/百度浏览器下载安装2023版本
  • 网站在布局/今日头条新闻最新疫情
  • 手把手教你如何建立自己的网站/哪家网络营销好
  • 织梦网站栏目如何做下拉/广告软文营销平台
  • 做发票网站/优化王
  • 想建设一个网站/优化网站
  • 网站建设过程中的收获/网络营销推广及优化方案
  • 网站排名有什么用/岳阳网站建设推广
  • 级a做爰片免费视网站看看/阿里seo排名优化软件
  • lnmp怎么做网站/代写平台在哪找
  • PHP做的哪些大型网站/互联网广告是做什么的
  • 广州海珠区有什么大学/合肥seo外包平台
  • 网站推广被封域名如何做跳转/网站信息
  • 购物网站的建设费用/手机怎么创建网站
  • 轴承外贸平台哪个网站最好/广州官方新闻
  • 企业网站优化与推广/站长推荐产品
  • 云南网站建设费用/公司推广策划
  • 阿里云 域名 做网站/沈阳关键词seo
  • 大型网站建设公司制作网站/做一个简单的网站需要多少钱
  • vs2017js网站开发方法/新媒体营销成功案例
  • 如何做kindle电子书下载网站/最近一周新闻热点回顾
  • 海兴县网站建设公司/直通车怎么开效果最佳
  • 做网站买流量/seo搜索引擎优化工资
  • 《Java 多线程全面解析:从基础到生产者消费者模型》
  • 【iOS】Block补充
  • 基于Spring Boot+Vue的社区便民服务平台 智慧社区平台 志愿者服务管理
  • JAVA经典面试题:数据库调优
  • 前端处理导出PDF。Vue导出pdf
  • STM32单片机学习日记