java基础--2019/01/05

IO流
    读数据(输入流)、写数据(输出流)
    理解:输入流 磁盘的内容写入内存中的程序
          输出流 内存的内容写出到磁盘中
输出流FileWriter
    FileWriter fw=new FileWriter("d:\\a.txt");//创建输出流对象(未写盘符,文件在项目根目录的相对路径中创建)
    fw.write("HelloWorld");//写数据
    fw.flush();//刷新缓冲区,因为数据没有直接写入磁盘中的文件中,而是写到内存缓冲区
    fw.close();//释放资源(先刷新缓冲区再通知系统回收资源)
    注意:换行符(window识别\r\n、Linux识别\n、mac识别\r)
          具体FileWriter类的方法使用请参考官方API
输入流FileReader
    方法一:
    FileReader fr=new FileReader("a.txt");
    int ch;
    //ch=fr.read();//一次读取一个字符,读取为-1时表示文件读取结束
    //System.out.println(ch);
    //System.out.println((char)ch);
    //数据读取并在控制台输出
    while((ch=fr.read())!=-1) {
        System.out.print((char)ch);
    }
    fr.close();//释放资源
    方法二:
    FileReader fr=new FileReader("a.txt");
    char[] chs=new char[1024];//1024及其整数倍,防止字符出错
    int len;
    while((len=fr.read(chs))!=-1) {//读出的1024个字符放到chs的字符数组中,返回读出的字符长度
        System.out.print(new String(chs,0,len));
    }

复制文本
    //创建读写流对象
    FileReader fr=new FileReader("a.txt");//a.txt要复制的文件
    FileWriter fw=new FileWriter("b.txt");
    //先读文件再写文件
    int ch;
    while((ch=fr.read())!=-1) {
        fw.write(ch);
    }
    //释放资源
    fw.close();
    fr.close();
字符缓冲流
BufferedWriter(将文本写入字符输出流,缓冲字符,以提供单个字符,数组和字符串的高效写入。)
    为FileWriter提供字符输出缓冲
    newLine():写一个换行符
BufferedReader(从字符输入流读取文本,缓冲字符,以提供字符,数组和行的高效读取。)
    为FileWriter提供字符输入缓冲
    readLine()一次读取一行数据,但是不读取换行符    
    
    方法一
    //创建输出缓冲对象
    BufferedWriter bw=new BufferedWriter(new FileWriter("c.txt"));
    bw.write("hello");
    bw.flush();
    bw.close();
    //创建输入缓冲对象
    BufferedReader br=new BufferedReader(new FileReader("c.txt"));
    char[] chs=new char[1024];
    int ch;
    while((ch=br.read())!=-1) {
        System.out.print((char)ch);
    }
    br.flush();
    br.close();
    方法二
    BufferedWriter bw=new BufferedWriter(new FileWriter("c.txt"));
    for(int i=0;i<10;i++) {
        bw.write("hello"+i);
        bw.newLine();
        bw.flush();
    }
    bw.close();
    BufferedReader br=new BufferedReader(new FileReader("c.txt"));
    String line;
    while((line=br.readLine())!=null) {
        System.out.println(line);
    }
    br.close();
复制文本
    BufferedReader br=new BufferedReader(new FileReader("c.txt"));
    BufferedWriter bw=new BufferedWriter(new FileWriter("copy.txt"));
    String line;
    while((line=br.readLine())!=null){
        bw.write(line);
        bw.newLine();
        bw.flush();
    }
    bw.close();
    br.close();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值