当前位置: 移动技术网 > IT编程>开发语言>Java > JAVA读取文本文件内容实例代码

JAVA读取文本文件内容实例代码

2019年09月06日  | 移动技术网IT编程  | 我要评论

快速备案就找 云聚达,我是湖人中锋,高官风流

java读取文本文件内容

今天写代码写着要调试一个很长的字符串,就用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; 
    } 
  }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对移动技术网的支持。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网