JAVA中读取文件转换为字符串
来源:互联网 发布:梁朝伟张曼玉 知乎 编辑:程序博客网 时间:2024/05/22 15:51
方式一
/**
以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。
当然也是可以读字符串的。
*/
/* 貌似是说网络环境中比较复杂,每次传过来的字符是定长的,用这种方式?*/public String readString1(){ try { //FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader。 FileInputStream inStream=this.openFileInput(FILE_NAME); ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte[] buffer=new byte[1024]; int length=-1; while( (length = inStream.read(buffer) != -1) { bos.write(buffer,0,length); // .write方法 SDK 的解释是 Writes count bytes from the byte array buffer starting at offset index to this stream. // 当流关闭以后内容依然存在 } bos.close(); inStream.close(); return bos.toString(); // 为什么不一次性把buffer得大小取出来呢?为什么还要写入到bos中呢? return new(buffer,"UTF-8") 不更好么? // return new String(bos.toByteArray(),"UTF-8"); }}
方式二
// 有人说了 FileReader 读字符串更好,那么就用FileReader吧
// 每次读一个是不是效率有点低了?private static String readString2(){ StringBuffer str=new StringBuffer(""); File file=new File(FILE_IN); try { FileReader fr=new FileReader(file); int ch = 0; while((ch = fr.read())!=-1 ) { System.out.print((char)ch+" "); } fr.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); System.out.println("File reader出错"); } return str.toString();}
方式三
/按字节读取字符串/
/* 个人感觉最好的方式,(一次读完)读字节就读字节吧,读完转码一次不就好了*/
private static String readString3()
{
String str="";File file=new File(FILE_IN);try { FileInputStream in=new FileInputStream(file); // size 为字串的长度 ,这里一次性读完 int size=in.available(); byte[] buffer=new byte[size]; in.read(buffer); in.close(); str=new String(buffer,"GB2312");} catch (IOException e) { // TODO Auto-generated catch block return null; e.printStackTrace();}return str;
}
方式四
/InputStreamReader+BufferedReader读取字符串 , InputStreamReader类是从字节流到字符流的桥梁/
/* 按行读对于要处理的格式化数据是一种读取的好方式 */private static String readString4(){ int len=0; StringBuffer str=new StringBuffer(""); File file=new File(FILE_IN); try { FileInputStream is=new FileInputStream(file); InputStreamReader isr= new InputStreamReader(is); BufferedReader in= new BufferedReader(isr); String line=null; while( (line=in.readLine())!=null ) { if(len != 0) // 处理换行符的问题 { str.append("\r\n"+line); } else { str.append(line); } len++; } in.close(); is.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return str.toString();}
–>路要一步一步走,记住自己走过的路,不再犯同样的错误,才是真正的成长!欢迎指点、交流。<–
如果觉得本篇博客解决了你的困惑,还请你顶下文章,或者微信扫描下方二维码,打赏下博主,感激你的支持。
1 0
- JAVA中读取文件转换为字符串
- Java读取文件内容并转换为字符串
- Java读取文件内容并转换为字符串
- Java读取文件内容并转换为字符串
- java 读取clob,blob转换为字符串
- JAVA中几种读取文件为字符串
- JAVA中几种读取文件为字符串
- JAVA中几种读取文件为字符串
- java读取文件内容为string字符串
- java中字符串转换为字符串数组
- Java中数字转换为字符串,字符串转换为字符
- java 读取Oracle的clob,blob转换为字符串
- java 中byte转换为字符串
- Java中字符串转换为时间戳
- java中字节数组转换为字符串
- 文件转换为字符串
- C#从Excel文件中读取数据转换为DataSet
- 读取jar包中图片文件,并转换为BufferImage
- Hibernate两种方式进行映射配置
- java中重写equals方法
- Java中的Random函数
- 几种js图片裁剪
- access/sql server笔记(20160818)
- JAVA中读取文件转换为字符串
- ListView的刷新
- JSP笔记 -Servlet技术
- 【嵌入式Linux】LCD应用程序2440
- mysql双机热备
- js判断ie浏览器版本号
- python 学习-使用生成器输出杨辉三角和斐波拉契数列
- 大致看了下,很给了,mark一下。 http://cn.vuejs.org/
- datagrid每次查询定位到列表第一页