JavaIO流文件的操作总结
IO流的分类
1、根据数据的流向:
输入流:用来读数据,如从外界设备读数据到内存中;
输出流:用来写数据,如从内存输出数据到外界存储设备;
2、根据数据流的格式:
字节流:一般用于声音或者秃瓢等二进制数据流,如InputStream OutputStream;
字符流:一般用于处理文本数据如(*.txt),比如InputStreamReader OutputStreamWriter;
3、根据数据流的构造函数区分包装流和原始流:
包装流:在实例化流的时候需要传入另一个流作为自己构造函数的参数,如
java.io.Reader reader = new InputStreamReader(new FileInputStream(inputFile), "utf-8");
BufferedReader reader = new BufferedReader(new FileReader(inputFileName));
原始流:在实例化流的时候不需要传入另一个流作为自己构造函数的参数,如
InputStream is= new FileInputStream(inputFile);
1、按字节来读写文件(以字节来读写文件,一般用于读写二进制文件如图片、声音、影音等等)
/**
* 字节读写文件
* @param inputFileName
* @param outPutFileName
*/
public static void readerAndWriteFileByBytes(String inputFileName,String outPutFileName){
File inputFile = new File(inputFileName);
File outputFile = new File(outPutFileName);
InputStream is = null;
OutputStream os = null;
try {
is = new FileInputStream(inputFile);
os = new FileOutputStream(outputFile);
byte[] tempBytes = new byte[100];
int byteread = 0;
while((byteread = is.read(tempBytes))!=-1){
os.write(tempBytes, 0, byteread);
}
is.close();
os.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("字节读写文件完成");
}
2、按字符来读写文件(以字符来读取文件,一般用于读写文本或数字类的文件)
/**
* 按字符读取文件并写出到另一个文件(一次读取一个字符)
* @param inputFileName
* @param outPutFileName
*/
private static void readAndWriteFileByOneChar(String inputFileName,String outPutFileName) {
File inputFile = new File(inputFileName);
File outputFile = new File(outPutFileName);
Reader reader = null;
Writer writer = null;
try {
reader = new InputStreamReader(new FileInputStream(inputFile), "utf-8");
writer = new OutputStreamWriter(new FileOutputStream(outputFile),"utf-8");
int tempChar;
while((tempChar=reader.read())!=-1){
writer.write(tempChar);
}
reader.close();
writer.close();
System.out.println("按单个字符读写文件结束。。。");
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 按字符读取文件并写出到另一个文件(一次读取多个字符)
* @param inputFileName
* @param outPutFileName
*/
private static void readAndWriteFileByChars(String inputFileName,String outPutFileName) {
File inputFile = new File(inputFileName);
File outputFile = new File(outPutFileName);
Reader reader = null;
Writer writer = null;
try {
reader = new InputStreamReader(new FileInputStream(inputFile), "utf-8");
writer = new OutputStreamWriter(new FileOutputStream(outputFile),"utf-8");
int tempChar;
// 一次读多个字符
char[] tempchars = new char[30];
while((tempChar=reader.read(tempchars))!=-1){
if(tempChar == tempchars.length && (tempchars[tempchars.length - 1] != '\r')){
writer.write(tempChar);
}else{
for(int i=0;i<tempchars.length;i++){
if (tempchars[i] == '\r') {
continue;
} else {
writer.write(tempchars[i]);
}
}
}
}
reader.close();
writer.close();
System.out.println("按多个字符读写文件结束。。。");
} catch (IOException e) {
e.printStackTrace();
}
}
3、按行来读取文件(以行为单位读取文件,一般用于读取面向行的格式化文件)
/**
* 读取一个文件写入到另一个文件
* @param inputFileName 读取文件的路径
* @param outputFileName 写出文件的路径
*/
public static void readAndWriteFileByLine(String inputFileName,String outputFileName){
BufferedReader reader = null;
BufferedWriter writer = null;
try {
writer = new BufferedWriter(new FileWriter(outputFileName));
reader = new BufferedReader(new FileReader(inputFileName));
String tempStr =null;
while((tempStr=reader.readLine())!=null){
writer.append(tempStr);
writer.newLine(); //换行
writer.flush(); //及时清除流的缓冲区,万一文件过大就无法写入了
}
} catch (IOException e) {
e.printStackTrace();
}finally{
if(reader!=null || writer!=null){
try {
reader.close();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println("文件写入成功");
}
}
JavaIO流文件的操作总结的更多相关文章
- Java-IO读写文件简单操作2
承接Java-IO读写文件简单操作,这里再次写个小demo巩固一下知识点. 代码文件:demo.java package com.test.demo; import java.io.*; public ...
- JavaIO流(输入输出操作)
Java中执行输出和输入操作,需要通过IO流.例如最常见的System.out.println()就是一个输出流.IO流的类比较多,但核心体系就是由File. InputStream .OutputS ...
- Java-IO流之File操作和Properties操作
java的File类主要是用来操作文件的元数据,稍作演示如下: 其中方法getAllJavaFile()是使用了过滤器FileFileter,这个过滤器只需要实现accept方法,判断什么样的文件返回 ...
- Java-IO读写文件简单操作
Java中读写文件的关键在于节点流和处理流的的选取上,而节点流和处理流又分为面向字节.面向字符两种处理模式,因此,需要根据实际的情况选择合适的处理模式,一般而言,往往尽量尝试使用面向字符的处理模式,如 ...
- JavaIO流之File操作
IO流: File: File(文件/文件夹地址)构造函数: public File(String path); public File(String parentPath, String child ...
- Java 字符流实现文件读写操作(FileReader-FileWriter)
Java 字符流实现文件读写操作(FileReader-FileWriter) 备注:字符流效率高,但是没有字节流底层 字节流地址:http://pengyan5945.iteye.com/blog/ ...
- javaIO流实现读写txt文件
javaIO流实现文件读写 文件写入: InputStreamReader BufferedReader 文件读取: FileOutputStream package javatest.basic22 ...
- java 学习笔记之 流、文件的操作
ava 学习笔记之 流.文件的操作 对于一些基础的知识,这里不再过多的解释, 简单的文件查询过滤操作 package com.wfu.ch08; import java.io.File; import ...
- C#IO流文件操作
文件流 创建文件流 读写文件的第一步就是创建文件流,流是一个用于数据传输的个对象,它是FileStream类型,在创建一个文件流是需要在他的构造中指定参数 语法: FileStream 文件流对象=n ...
随机推荐
- MMORPG大型游戏设计与开发(客户端架构 part15 of vegine)
一个接口需要统一的派生接口,这样做的好处在于能够统一的进行管理.我所知的脚本语言中,接口有多重接口,也还有所谓的虚基类,这些都是方便类的管理.在vengine(微引擎)中,统一的的接口管理为kerne ...
- Java Web之请求和响应
Servlet最主要作用就是处理客户端请求并作出回应,为此,针对每次请求,Web容器在调用service()之前都会创建两个对象,分别是HttpServletRequest和HttpServletRe ...
- 自学一个月的java了
不知道这篇博文有不有朋友看到.先自我介绍一下,硕士一年级下学期. 对编程感兴趣,硕士一年级下学期转学计算机专业,目前刚好一个月的时间.接触计算机也是刚好一个月的时间. 学习了java,javaweb. ...
- Object.Destroy慎用
Object.Destory Destory(Object)并没有立刻,马上,及时的删除这个Object. 举例 在使用NGUI的Table或Grid进行布局时,就需要注意了:尽量不要使用Destro ...
- Linux混杂设备驱动学习
Linux混杂设备是字符设备的一类,主要是混杂设备拥有相同的主设备号(10),但是次设备号是不同的.所有的混杂设备行程一个链表,对设备访问时内核更据次设备号查找到相应的混杂设备. 混杂设备用struc ...
- bzoj2748[HAOI2012]音量调节(背包问题的方案)
Description 一个吉他手准备参加一场演出.他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都要改变一次音量.在演出开始之前,他已经做好了一个列表,里面写着在每首歌开始之前他想要改 ...
- mui禁止横屏显示,仅支持竖屏显示
mui.plusReady(function () { plus.screen.lockOrientation("portrait-primary"); });
- HTML 学习笔记 CSS3(Animation)
CSS3动画: 通过CSS3 我们能够创建动画 这可以在许多网页中取代动画图片 Flash动画 以及JavaScript. CSS3 @keyframes 规则如需在 CSS3 中创建动画,您需要学习 ...
- WARN util.NativeCodeLoader: Unable to load native-hadooplibrary for your platform… using builtin-java classes where applicable
方法1glibc 官方要求的2.14版本以上 方法2:http://www.secdoctor.com/html/yyjs/31101.html 方法3: http://dl.bintray.com/ ...
- LOG4NET日志配置及使用
Log4net的安装 Install-Package log4net 1.先弄个日志记录的类 /// <summary> /// 使用LOG4NET记录日志的功能,在WEB.CONFIG里 ...