IO流

package day20;

import java.io.FileWriter;
import java.io.IOException;

/*
 * 流(IO流):Input-OutputStream,作用:实现两个设备之间的数据传输
 * 
 * 设备: 磁盘(硬盘),内存,键盘,文件,网络,控制台
 * 网络:当前主机之外的网上资源
 * 分类:
 * 根据操作的方式:输入流和输出流
 * 根据数据的类型:字节流和字符流
 * 字节流:传输的是字节,可以操作任意类型的数据---音频,视频,文件,图片等
 * 字符流:传输的是字节,不同点是在传输过程中加入了编码操作,让我们的操作更方便,只能操作文本
 * 
 * 以内存为参考:
 * 字节流:
 * 字节输入流:InputStream
 * 字节输出流:OutputStream
 * 字符流的两个父类:
 * 字符读入流(将数据读入内存):Reader
 * 字符写出流(将字符从内存取出):Writer
 * 
 * 
 * 实例:研究字符流
 * 以磁盘的数据存储为例,将数据写入文件
 * 分析:操作是文件,所以使用字符流
 *       是将数据从内存放入磁盘所以是字符写出流
 */

public class Demo02 {
    public static void main(String[] args) throws IOException {
        // 1.创建FileWriter类的对象,并关联文件
        /*
         * 
         * 注意点:
         * 1.关联文件的特点:如果之前不存在,程序会自动创建一个,如果存在,程序会直接使用,但是会将之前的文件内容覆盖
         * 2.如果只写文件的名字,不写文件的路径,默认文件路径就是当前工程
         * 3.我们可以自己指定路径但是一定要保证路径存在,否则会报异常
         * 4.在执行write方法时,数据被临时放到流对象的内部数组中,而且这个数组是一个字节数组,会默认去查编码表
         * 5.流对象使用完后一定要关闭
         * 6.当流对象关闭之后,不能在进行操作,否则会报异常
         */
        FileWriter fileWriter = new FileWriter("temp.txt");
        // 2.调用写入方法
        // 在执行write方法时,数据被临时放到流对象的内部数组中,而且这个数组是一个字节数组,会默认去查编码表
        fileWriter.write("bingbingbang");
        // 3.刷新--会将数组中的内容写入磁盘
        //fileWriter.flush();
        //4.关闭流---两个功能:1.关闭流  2.刷新
        fileWriter.close();
    }
}
 

实例:完成文件的复制

package day20;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/*
 * 实例:完成文件的复制
 * 
 * 相对路径:从路径中间的某个部位开始一直到当前的文件
 * 绝对路径:一个文件的完整路径,从根目录开始到当前的文件
 * 
 * 补充知识:
 * \代表转义字符       \t制表符        \n换行符        \\:表示普通的反斜杠
 * 在代表路径时,\\与/是一个意思 
 */
public class Demo06 {
    public static void main(String[] args) throws IOException {
        FileReader fileReader = new FileReader("D:\\Eclipse\\EclipseWork\\BigDataFour\\src\\day20\\Demo04.java");
        FileWriter fileWriter = new FileWriter("temp1.txt");

        // 读写
        int num;
        while ((num = fileReader.read()) != -1) {
            fileWriter.write(num);
        }
        fileReader.close();
        fileWriter.close();
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值