大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
java读取文本文件内容
成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、成都网站建设、吉木乃网络推广、重庆小程序开发、吉木乃网络营销、吉木乃企业策划、吉木乃品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供吉木乃建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
今天写代码写着要调试一个很长的字符串,就用idea新建了text文本,存放长字符串的内容。结果发现读取文本文件内容的java代码不怎么会写了,果然是面向百度编程,面向control c 或者control v编程,尴尬。
最终的代码如下:
public static String readFileContent(String fileName) { File file = new File(fileName); BufferedReader reader = null; StringBuffer sbf = new StringBuffer(); try { reader = new BufferedReader(new FileReader(file)); String tempStr; while ((tempStr = reader.readLine()) != null) { sbf.append(tempStr); } reader.close(); return sbf.toString(); } catch (IOException e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e1) { e1.printStackTrace(); } } } return sbf.toString(); }
留个小问题,这种方式只能读取普通的文本文件,对于二进制之类的文件,是不可以的,那应该如何做呢,嗯,等碰到这样场景的需求再记录下来吧。
Java一次读取文本文件所有内容
我们做文本处理的时候的最常用的就是读写文件了,尤其是读取文件,不论是什么文件,我都倾向于一次性将文本的原始内容直接读取到内存中再做处理,当然,这需要你有一台大内存的机器,内存不够者……可以一次读取少部分内容,分多次读取。
读取文件效率最快的方法就是一次全读进来,很多人用readline()之类的方法,可能需要反复访问文件,而且每次readline()都会调用编码转换,降低了速度,所以,在已知编码的情况下,按字节流方式先将文件都读入内存,再一次性编码转换是最快的方式,典型的代码如下:
public String readToString(String fileName) { String encoding = "UTF-8"; File file = new File(fileName); Long filelength = file.length(); byte[] filecontent = new byte[filelength.intValue()]; try { FileInputStream in = new FileInputStream(file); in.read(filecontent); in.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } try { return new String(filecontent, encoding); } catch (UnsupportedEncodingException e) { System.err.println("The OS does not support " + encoding); e.printStackTrace(); return null; } }
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对创新互联的支持。