IO中常用的方法

IO流是java中比较常用的知识点,也是非常重要的知识点,所以学号IO很重要!
IO流对象分类
Input输入: 读取文件
Output输出: 写文件

按照流对象操作的文件类型分
字节流, 操作的文件中的最小组成单元字节,操作1个字节,8个二进制
字符流, 专门用于操作文本文件,操作1个字符,16个二进制

字节流,可以操作什么文件,所有都可以, JDK1.0
字符流,只能操作文本文件,属于一种非常特殊的文件  JDK1.1

按照数据的流向分类
输出流,从Java程序中将输入输出到一个目的中,写文件
输入流,Java一个数据源读取数据到Java程序中,读文件

归类:
字节输出流: 写任意文件
字节输入流: 读取任意文件
字符输出流: 写文本文件
字符输入流: 读取文本文件

IO对象中的四大抽象基类
字节输出流: 最高父类 OutputStream
字节输入流: 最高父类 InputStream
字符输出流: 最高父类 Writer
字符输入流: 最高父类 Reader

OutputStream字节输出流,写文件
这个父类方法都是写的方法 write
write(int b) 写1个字节
write(byte[] b)写字节数组
write(byte[] b,int offset,length)写字节数组一部分,开始索引,写几个
close()关闭此流,释放所有操作系统资源

InputStream字节输入流,读取文件
这个父类方法都是读的方法 read
int read()读取1个字节
int read(byte[] b)读取字节数组,从流中读取的字节存储到数组中
int read(byte[] b,int offset,int length)读取字节数组一部分,从流中读取指定个数的字节,存储到数组中
close()关闭此流,释放所有操作系统资源

Writer字符输出流,写文本文件
这个父类方法都是写的方法 write
write(int c)写1个字符
write(char[] cbuf)写1个字符数组
write(char[] cbuf,int offset,int length)写字符数组一部分,开始索引,写几个
write(String s)写字符串
write(String s,int offset,int length)写字符串的一部分,开始索引,写几个
flush()刷新该流缓冲,字符输出流写数据,必须要刷新
close()关闭此流,释放所有操作系统资源,先刷新

Reader字符输入流,读取文本文件
这个父类方法都是读取的方法 read
int read()读取1个字符
int read(char[] cbuf)读取字符数组,从流中读取的字符存储到数组中
int read(char[] cbuf,int offset,int length)读取字符数组一部分,从流中读取指定个数的字符,存储到数组中
close()关闭此流,释放所有操作系统资源

下面上几个实例:
实例1:
package io;
import java.io.*;
public class FileInputStreamTest {

public static void main(String[] args) throws IOException{
//新建一个获取类
FileInputStream fis = null;
    try{    
            //在c盘下新建一个hello.txt的文件
        fis = new FileInputStream("c:\\hello.txt");
        byte[] arr = new byte[1024];
        int n = 0;
        while((n = (fis.read(arr))) != -1){
            System.out.println(new String(arr,0,n));
        }
    }
    //对运行中可能存在的异常进行提示
catch(IOException ex){
   ex.printStackTrace();
   throw new RuntimeException("文件读取失败!");
   //finally是不管什么情况下都是要走的
}finally{
    try{
       if(fis!=null)
         fis.close();
   }catch(IOException ex){
       ex.printStackTrace();
       throw new RuntimeException("关闭失败");
   }
}

fis.close();

}

}

实例2:
//简单的文件复制功能
package cn.itcast.copy;
import java.io.*;
public class CopyText {
public static void main(String[] args) {
//定义出2个流对象的变量,不要new
FileInputStream fis = null;
FileOutputStream fos = null;
try{
//创建流对象
fis = new FileInputStream(“d:\abc.txt”);
fos = new FileOutputStream(“c:\abc.txt”);
//循环,读取数据源,读取1个字节,写1个字节
int len = 0 ;
while( ( len = fis.read()) !=-1){
fos.write(len);
}
}catch(IOException ex){
ex.printStackTrace();
throw new RuntimeException(“文件复制失败”);
}finally{
try{
if(fos!=null)
fos.close();
}catch(IOException ex){
throw new RuntimeException(“资源关闭失败”);
}finally{
try{
if(fis!=null)
fis.close();
}catch(IOException ex){
throw new RuntimeException(“资源关闭失败”);
}
}
}
}
}

以上是对IO流中的一些重点的一些总结,希望对刚开始学习IO流的人有些帮助,这些都是IO阶段的重点,也是后面做开发必须要掌握的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值