千锋扣丁学堂Java培训之读取文本文件内容实例代码

2019-09-03 14:42:12 3396浏览

今天千锋扣丁学堂Java在线培训老师给大家分享一篇关于JAVA读取文本文件内容实例代码的详细介绍,希望对同学们有所帮助,下面我们来看一下其中主要部分源码!



最终的代码如下:

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; 
    } 
  }

以上就是关于千锋扣丁学堂Java培训之读取文本文件内容实例代码的全部内容,希望本文所述对大家java程序设计有所帮助,想要学好Java开发小编给大家推荐口碑良好的扣丁学堂,扣丁学堂有专业老师制定的Java学习路线图辅助学员学习,此外还有与时俱进的Java课程体系和Java视频教程供大家学习,想要学好Java开发技术的小伙伴快快行动吧。扣丁学堂Java技术交流群:850353792。


                          JavaEE/微服务/源码解析/分布式/企业级架构【VIP体验课】


     【关注微信公众号获取更多学习资料】        【扫码进入JavaEE/微服务VIP免费公开课】  



查看更多关于“Java开发资讯”的相关文章>>

标签: Java培训 Java视频教程 Java多线程 Java面试题 Java学习视频 springBoot项目

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号