Java中读取文件转换为字符串的方法

所属分类: 软件编程 / java 阅读数: 38
收藏 0 赞 0 分享

方式一

/**

以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。

当然也是可以读字符串的。

*/

/* 貌似是说网络环境中比较复杂,每次传过来的字符是定长的,用这种方式?*/
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();
}

路要一步一步走,记住自己走过的路,不再犯同样的错误,才是真正的成长!欢迎指点、交流。

以上这篇Java中读取文件转换为字符串的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

spring boot 静态资源处理方法

本篇文章主要介绍了spring boot 静态资源处理方法。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

详解spring boot 使用application.properties 进行外部配置

这篇文章主要介绍了详解spring boot 使用application.properties 进行外部配置,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Java实现分页的前台页面和后台代码

这篇文章主要为大家详细介绍了Java实现分页的前台页面和后台代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

详解spring面向切面aop拦截器

spring中有很多概念和名词,比如过滤器、拦截器、aop等。这篇文章主要介绍了详解spring面向切面aop拦截器,有兴趣的可以了解一下。
收藏 0 赞 0 分享

Java easyui树形表格TreeGrid的实现代码

这篇文章主要为大家详细介绍了Java easyui树形表格TreeGrid的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Java的NIO与IO的详解及对比

这篇文章主要介绍了Java的NIO与IO的详解及对比的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

Java中网络IO的实现方式(BIO、NIO、AIO)介绍

这篇文章主要介绍了Java中网络IO的实现方式(BIO、NIO、AIO)介绍的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

Java 敏感信息加密处理

本文主要介绍了Java 敏感信息加密处理的相关知识:1)敏感信息加密处理我们要实现什么;2)敏感信息加密处理我做了些什么;3)敏感信息加密实现方法。具有很好的参考价值,下面跟着小编一起来看下吧
收藏 0 赞 0 分享

详解使用Spring3 实现用户登录以及权限认证

这篇文章主要介绍了详解使用Spring3 实现用户登录以及权限认证,这里整理了详细的代码,有需要的小伙伴可以参考下。
收藏 0 赞 0 分享

Java的内存机制详解

本文主要介绍了Java的内存机制的相关知识,具有很好的参考价值,下面跟着小编一起来看下吧
收藏 0 赞 0 分享
查看更多