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大型游戏设计与开发(客户端架构 part9 of vegine)
时间在人们的生活中是多么重要的东西,如果打乱了时间,不知道这个时间会成什么样子.在客户端中,自然也有时间模块,因为不同的时间可能会处理不同的事情,特别是在追求高度自由化的同时,时间也成为了一个很重要的 ...
- 「Mobile Testing Summit China 2016」 中国移动互联网测试大会-议题征集
时至北京盛夏,一场由 TesterHome 主办的关于移动互联网测试技术的盛会正在紧锣密鼓的筹备中.只要你关注软件质量,热爱测试,期待学习,都欢迎你加入这次移动测试技术大会中和我们一起分享经验.探讨话 ...
- POJ3211 Washing Clothes[DP 分解 01背包可行性]
Washing Clothes Time Limit: 1000MS Memory Limit: 131072K Total Submissions: 9707 Accepted: 3114 ...
- 第15章 设备无关位图_15.2 显示和打印DIB
15.2.1 探究DIB (1)DIB文件的结构 整个文件 紧凑DIB(整个文件除文件头) 文件头(File Header) 信息头(Information Header) 信息头(Informati ...
- UITableViewCell 多选和全选(checkBoxCell)
思路1 一.全选 1.创建可变数组,存储所有未选中状态(NO)的布尔值按钮,点击时改变其状态,并传入按钮的状态. 二.多选 1.创建Cell时,从数组中取出相应的值,传给cell,如果为YES,否则为 ...
- <实训|第六天>偷偷让新手的Linux无限重启附linux主机名称不是随便乱改的!
先说个事情:这几天我正在忙一个项目的设计,8月1号之前要弄出来,所以每天都要弄到很晚,可能更新就有点跟不上了,不过我如果有时间的话,我就更新,没时间的话,我会在8月1号之后统一更新出来,希望大家谅解! ...
- win8/8.1 免密码登录设置
http://www.ehow.com/how_8013338_start-windows-password.html 原文见上方链接 1,win+r调出命令输入窗口,输入 netplwiz 回车 2 ...
- Log4net使用(三)
第一步 public class logger { private static ILog Info; private static ILog Error; private static ILog W ...
- HTTP请求头参数
Accept-Language: zh-cn,zh;q=0.5 意思:浏览器支持的语言分别是中文和简体中文,优先支持简体中文. 详解: Accept-Language表示浏览器所支持的语言类型: ...
- 替罪羊树模板(BZOJ1056/1862)
#include<cstdio> #include<cstring> #include<cmath> #include<iostream> #defin ...