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 ...
随机推荐
- Struts2工作原理
Struts2工作原理 Struts2请求响应流程: 在struts2的应用中,从用户请求到服务器返回相应响应给用户端的过程中,包含了许多组件如:Controller.ActionProxy.Acti ...
- Use getopt() & getopt_long() to Parse Arguments
Today I came across a function [getopt] by accident. It is very useful to parse command-line argumen ...
- 最新discuz模版制作7堂课让你精通discuz模版制作
第一课 基本知识储备一.基本 HTML 代码二.网站语言编码 三.DIV+CSS 认知及应用 第二课 必备软件.环境配置及程序安装 第三课 DISCUZ 构架详解 一.DISCUZ 基础构架讲 ...
- jquery.roundabout.js实现3D图片层叠旋转木马切换
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js. 兼容性如图: html结构代码: <div id="featured-area& ...
- 嵌入式Linux驱动学习之路(二)u-boot体验
u-boot工程简介 现在的u-boot支持PowerPC.ARM.X86.MIPS体系结构的上百种开发板,已经称为功能最多.灵活性最强,并且开发最积极的开源Bootloader.目前由DENX的Wo ...
- Eclipse的 JSON Edit插件
1. Json-Eclipse-Plugin https://github.com/boothen/Json-Eclipse-Plugin 2. 另外一个JSON Edit工具 https://tfe ...
- [转] 如何设置Eclipse的上网代理
from: http://blog.csdn.net/qq635785620/article/details/8191799 不同版本的eclipse有不同的设置方法 方式一: 默认的Eclips ...
- HTML 学习笔记 JavaScript(事件)
事件流: 事件流: 描述的是从页面中接收事件的顺序 也可以理解为事件在页面中传播的顺序: 事件: 就是用户或浏览器自身执行的某种动作 例如 click(点击) load(加载) mouseover(鼠 ...
- Java的super调用案例: super.getClass()返回的是子类自己
If you override a method from your superclass (or your superclass's superclass etc.), super.theMetho ...
- selmodel
selmodel不仅可以设置checkbox,还可以设置单元格选中模式,列选择模式,行选择模式