Java一次性读取或者写入文本文件所有内容
微wx笑
2022-06-19【编程语言】
96
1
0关键字:
java 文件操作
我们做文本处理的时候的最常用的就是读写文件了,尤其是读取文件,不论是什么文件,我都倾向于一次性将文本的原始内容直接读取到内存中再做处理,当然,这需要你有一台大内存的机器,内存不够者……可以一次读取少部分内容,分多次读取。
一次性读取文本文件所有内容
我们做文本处理的时候的最常用的就是读写文件了,尤其是读取文件,不论是什么文件,我都倾向于一次性将文本的原始内容直接读取到内存中再做处理,当然,这需要你有一台大内存的机器,内存不够者……可以一次读取少部分内容,分多次读取。
读取文件效率最快的方法就是一次全读进来,很多人用readline()之类的方法,可能需要反复访问文件,而且每次readline()都会调用编码转换,降低了速度,所以,在已知编码的情况下,按字节流方式先将文件都读入内存,再一次性编码转换是最快的方式,典型的代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 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 ; } } |
一次性写入文本文件所有内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | /** * 一次性写入文本文件所有内容 * * @param fileName * @param content */ public static void saveStringTOFile(String fileName, String content){ FileWriter writer= null ; try { writer = new FileWriter( new File(fileName)); writer.write(content); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } finally { try { writer.close(); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } System.out.println( "写入成功!!!" ); } |
本文为转载文章,版权归原作者所有,不代表本站立场和观点。