java 文件IO
2015-08-27 15:06
465 查看
每次需要操作文件的时候,总是一头雾水,不知道到底要用哪个类,怎样用。这里就稍微整理一下,以便后续查阅。
一、概述
文件类File本身不提供文件内容的操作,只提供文件属性的操作,如是否是文件夹,是否可读等等。
文件内容的操作,主要有两种方式,一种是流(字节)操作,另一种是字符操作。下表是文件类的预览表(摘自:http://tutorials.jenkov.com/java-io/overview.html):
注:
1、流(字节)操作的基类是InputStream和OutStream, 字符操作的基类是Reader和Writer
2、Buffering的类是为了提高读取效率,一次读取一大块数据,进行缓存。
二、实例代码
1、逐行读取文件内容
一、概述
文件类File本身不提供文件内容的操作,只提供文件属性的操作,如是否是文件夹,是否可读等等。
文件内容的操作,主要有两种方式,一种是流(字节)操作,另一种是字符操作。下表是文件类的预览表(摘自:http://tutorials.jenkov.com/java-io/overview.html):
Byte Based | Character Based | |||
Input | Output | Input | Output | |
Basic | InputStream | OutputStream | Reader InputStreamReader | Writer OutputStreamWriter |
Arrays | ByteArrayInputStream | ByteArrayOutputStream | CharArrayReader | CharArrayWriter |
Files | FileInputStream RandomAccessFile | FileOutputStream RandomAccessFile | FileReader | FileWriter |
Pipes | PipedInputStream | PipedOutputStream | PipedReader | PipedWriter |
Buffering | BufferedInputStream | BufferedOutputStream | BufferedReader | BufferedWriter |
Filtering | FilterInputStream | FilterOutputStream | FilterReader | FilterWriter |
Parsing | PushbackInputStream StreamTokenizer | PushbackReader LineNumberReader | ||
Strings | StringReader | StringWriter | ||
Data | DataInputStream | DataOutputStream | ||
Data - Formatted | PrintStream | PrintWriter | ||
Objects | ObjectInputStream | ObjectOutputStream | ||
Utilities | SequenceInputStream |
1、流(字节)操作的基类是InputStream和OutStream, 字符操作的基类是Reader和Writer
2、Buffering的类是为了提高读取效率,一次读取一大块数据,进行缓存。
二、实例代码
1、逐行读取文件内容
BufferedReader reader = new BufferedReader(new FileReader( "filePath")); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } reader.close();2、写入字符串到文件
OutputStream o = new FileOutputStream(outFile); OutputStreamWriter w = new OutputStreamWriter(o); w.write("string"); w.flush(); w.close();
相关文章推荐
- eclipse SVN 插件安装
- Struts2配置问题
- spring ioc 依赖注入
- Java 内部类
- java 用 jackson 进行 xml bean 互转
- Maven错误信息:Missing artifact jdk.tools:jdk.tools:jar:1.6
- Java加密与解密的艺术-Base64
- spring Bean-实例请求触发放回引用(工厂模式)
- Java汉字验证码
- JavaVisualVM监控远端JAVA程序
- spring transaction 注解方法报错Can not set field to proxy
- 安卓RSA加密,适配javaweb
- eclipse中使用jetty进行远程调试
- struts2表单验证里field-validator type值一共可以取哪些?都什么含义?
- Eclipse开发必备干货分享
- MyEclipse优化设置(最详细版本)
- java axis2 webservice
- struts2文件上传时获取上传文件的大小
- Spring MVC 开发 配置
- Java基础知识强化02:import static 和 import