在使用java对文件进行读写操作时,有多种方法可以使用,但不同的方法有不同的性能。

此文对常用的读写方法进行了整理,以备不时之需。

1、文件的读取

主要介绍两种常用的读取方法。按行读取和按字符块读取。

1.1 一次读取一行作为输入

//按行读取文件内容

public static String Read1(String infile)throws Exception//infile="data/in.txt"

{

StringBuffer sb = new StringBuffer();

BufferedReader br = new BufferedReader(new FileReader(infile));

String data = br.readLine();

while(data != null)

{

sb.append(data+"\n");

data = br.readLine();

}

br.close();

return sb.toString();

}

1.2 一次读取指定大小的字符块

关于一次读取一个字符的方法就不讲了,感觉这种方法效率太低了!

//以字符块读取文件

public static String Read2(String infile) throws Exception

{

StringBuffer sb = new StringBuffer();

File file = new File(infile);

FileInputStream fis = new FileInputStream(file);

byte buffer[] = new byte[1024];

int len = 0;

while((len = fis.read(buffer)) != -1)

{

sb.append(new String(buffer, 0, len));

//sb.append(new String(buffer, 0, len, "UTF-8"));//将byte转String可以指定编码方式

}

fis.close();

return sb.toString();

}

2、文件的写入

关于文件的写入,主要有三种方法,分别使用FileWriter、FileOutputStream和BufferedOutputStream。

根据一个网友的测试结果,在这三种方法中,使用FileWriter速度最快,而使用FileOutputStream速度最慢。

2.1 使用FileWriter函数写入数据到文件

//性能最好

public static void Write1(String file, String text) throws Exception

{

FileWriter fw = new FileWriter(file);

fw.write(text, 0, text.length());//fw.write(text)

fw.close();

}

2.2 使用FileOutputStream函数写入

//三种方法中性能最弱

public static void Write2(String file, String text)throws Exception

{

FileOutputStream fos = new FileOutputStream(file);

fos.write(text.getBytes());

fos.close();

//PrintStream ps = new PrintStream(fos);

//ps.print(text);

//ps.append(text);

}

2.3 使用BufferedOutputStream函数写入

//这三种方法中,性能中等

public static void Write3(String file, String text)throws Exception

{

BufferedOutputStream buff = new BufferedOutputStream(new FileOutputStream(file));

buff.write(text.getBytes());

buff.flush();

buff.close();

}

java 文件写入 读取_JAVA文件的两种读取方法和三种写入方法相关推荐

  1. java 设置session超时_Java设置session超时(失效)的三种方式

    转自:http://blog.csdn.net/hu_shengyang/article/details/8021435 1.      在web容器中设置(此处以tomcat为例) 在tomcat- ...

  2. java字符转为数字_Java 判断字符串能否转化为数字的三种方法

    linux shell 常用指令 1. man 对你熟悉或不熟悉的命令提供帮助解释 eg:man ls 就可以查看ls相关的用法 注:按q键或者ctrl+c退出,在linux下可以使用ctrl+c终止 ...

  3. 计算机新建文件夹的步骤打开,Win10新建文件夹假死,不要慌!教你这三种方法,轻松应对。...

    原标题:Win10新建文件夹假死,不要慌!教你这三种方法,轻松应对. 使用电脑开启文件夹是我们日常电脑使用过程中,经常会进行操作的事情.而有时我们在使用win10打开文件夹的时候会出现假死的现象,打开 ...

  4. java indexof 子字符串_Java中字符串中子串的查找共有四种方法(indexof())

    Java中字符串中子串的查找共有四种方法(indexof()) Java中字符串中子串的查找共有四种方法,如下: 1.int indexOf(String str) :返回第一次出现的指定子字符串在此 ...

  5. 284、一个宽带如何装两个路由器?这三种方法都可以使用

    很多朋友可能存这种情况,家里房间比较多,之前已经安装了一个无线路由器,但是在某些房间信号很差,想再增加一个无线路由器怎么办? 这个问题,也有不少朋友在问,其实实现的方法有好几种,实现的方法有三种: 二 ...

  6. 如何在一台计算机上使用两个网络,一个宽带如何装两个路由器?这三种方法都可以使用...

    原标题:一个宽带如何装两个路由器?这三种方法都可以使用 实现的方法有三种: 二级路由器.路由器改当交换机.无线桥接这三种,之前我也曾提到过,今天我们再来总结下两台路由器连接的三种方法. 一.无线路由器 ...

  7. Java接口方法的三种类型

    Java接口方法的三种类型 接口中的方法分别有以下三种 普通方法:使用default修饰的接口方法,可以拥有方法体,实现类不需要重写,可以被实现类继承,该特性是Java8以后被提出: 静态方法:接口中 ...

  8. java io 缓存读取_Java 文件IO写入读取四种方法

    第一种:字节流 FileInputStream  FileOutputStream 1.1 读取操作 //先创建一个和硬盘连接的流(打通硬盘和内存的通道) FileInputStream fis = ...

  9. java文件流读取_java 文件及流读取

    在Java语言的IO编程中,读取文件是分两个步骤:1.将文件中的数据转换为流,2.读取流内部的数据.其中第一个步骤由系统完成,只需要创建对应的流对象即可,对象创建完成以后步骤1就完成了,第二个步骤使用 ...

最新文章

  1. 记-更改配置而不需停止并重新启动服务
  2. 如何制作印章_电子公章怎么制作
  3. js cookies 存数组_用一个例子理解JS函数的底层处理机制
  4. tx1调试车辆检测遇到的问题
  5. VS调试提示无可用源。
  6. Data-Driven Geometry Processing 3D Deep Learning
  7. 表单提交后打印后台传过来的数据
  8. VTP与三层交换配置实验
  9. 高斯09linux教程,Gaussian 09的安装与使用
  10. 黑马程序员-----c语言从相识相知到renascence持续发布中第一篇
  11. Rust 智能指针(二)
  12. 表格特性:表格实现的边框、表格特性、边框的颜色、表格的标题
  13. 集合框架学习笔记(下)
  14. OFD文件转PDF怎么转换?教你一键转换方法
  15. SpringBoot中banner个性启动(内附自定义设计网站)
  16. [UVa 1646] Edge Case
  17. HTML5期末大作业:餐饮美食网站设计——绿色的餐饮美食网站(1页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码
  18. 基于AM5728的PROFIBUS 通信测试
  19. Python—docx 批量处理 docx2pdf 文件
  20. dos模拟器即时存档工具_手机DOS模拟器app最新版下载-手机DOS模拟器下载v1.0.76安卓版-西西软件下载...

热门文章

  1. 挪动以太坊:比特币现金的新功能使其成为智能合约竞争者
  2. 为什么Python发展这么快,有哪些优势?
  3. Spring Boot 参考指南(使用NoSQL技术)
  4. Cortex-M3启动深度解析
  5. 洛谷——P1098 字符串的展开
  6. 高性能集群软件Keepalived的介绍以及安装与配置
  7. 木棍分割[HAOI2008]
  8. 打patch p0 p1区别
  9. LAMP之二:LAMP的性能测试以及安装xcache,为php加速
  10. 根据下拉框生成控件列表