IO流的基础

IO流的基础概念

IO流:用于读写文件中的数据(可以读写文件,或网络中的数据)

在IO流中,读与写主要以内存为参照物进行的。

IO流按照流的方向,可以分为输入流和输出流,按照操作文件的类型,可以分为字节流和字符流。

使用流的四个步骤:找到源,打开流,操作流,关闭流。

注意:在使用完流后,必须关闭流,避免资源的浪费。

字节流的俩种基本流

字节输入流的创建格式:

FileInputStream(FIle file)//通过一个实际文件的对象来创建一个FileInputStream
FIleInputStream(String name)//通过打开一个到实际文件的地址来创建一个FileInputStream

字节输入流的基本方法:

int read()//从此输入流中读取一个数据字节,并放回
int read(byte[] b)//从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中,并返回读入的长度。
int read(byte[] b,int off,int len)//从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。
void close//    

字节输出流的创建格式:

FileOutputStream(File file)//创建一个向指定 File 对象表示的文件中写入数据的文件输出流
FileOutputStream(File file,boolean append)//表示是否要续写。
FileOutputStream(String name)//创建一个向具有指定名称的文件中写入数据的输出文件流。
FIleOutputStream(String name,boolean append)// 表示是否要续写。 

主要方法:

void write(int c)//写入单个字节
void write(char[] obuf,int off,int len)//写入字节数组的一部分。
void flush()//刷新该流的缓冲
void close()//关闭该流  

字节输出流的细节:如果路径下的文件不存在,则会自动创建一个文件。当并为指明是否续写时,会自动认为关闭续写。

运用字节流完成文件的拷贝(完整代码);

public static void main(String[] args) {
        FileInputStream fis = null;
        FileOutputStream fos =null;
        try {
            fis = new FileInputStream("D:\\javaspace\\untitled\\a.txt");//创建字节输入流的对象
            fos = new FileOutputStream("D:\\javaspace\\untitled\\b.txt");//创建字节输出流的对象
            int len;
            byte arr[] = new byte[2];//字节数组
            while((len = fis.read(arr))!=-1){
                fos.write(arr,0,len);
            }
            fos.flush();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (fos!=null) {
                try {
                    fos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (fis!=null) {
                try {
                    fis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

字符流的俩种基本流

字符输入流的创建格式;

FileRead(File file)//通过一个真实的文件对象来创建一个字符输入流
FileRead(String name)//通过一个真实的路径来创建一个字符输入流的对象    

主要方法:

int read()//
int read(char[] char,int offset,int length)//将字符读入数组中的某一部分,并返回读入数组的长度。
void close//关闭该流并释放与之关联的所有资源。    

字符输出流的创建格式:

FIleWriter(File file)
FileWriter(File file,boolean append)
FileWriter(String name)
FileWriter(String name,boolean append)
//构造方法与字节输出流的构造方法效果相同    

主要方法:

void write(int c)//写入单个字符
void write(char[] obuf,int off,int len)//写入字符数组的一部分。
void flush()//刷新该流的缓冲
void close()//关闭该流    

字节流与字符流的差别

1、两者的组成不同: 字节流的组成:字节流是由字节组成的。 字符流的组成:字符流是由字符组成的。

2、字节流可以处理所有数据,而字符流一般只用于处理文本文件。

3、在处理 除 英文和英文符号外的其他语言,使用字节流会出现乱码的情况,因为字节流是一个字节一个字节的传递数据,像中文是由多个字节组成的,传递时会有失传的情况,而字符流的就是为了避免这种情况而出现的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呜呜。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值