Java学习之路(五十六)| IO流(三)

各自努力,最高处见!加油!

在这里插入图片描述

一、文件的拷贝

代码示例

  1. 创建文件的输入流,将文件读取到输出流
  2. 在完成程序时,应该是读取部分数据,就写入到新的文件里(避免因为内存不够等原因造成异常)使用循环操作
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileCopy01 {
    public static void main(String[] args) {
        //1、创建文件的输入流,将文件读取到输出流
        //2、在完成程序时,应该是读取部分数据,就写入到新的文件里(避免因为内存不够等原因造成异常)使用循环操作
        String srcFilepath="D:\\桌面\\test13.png";
        String dstFilepath="D:\\Java_code\\LearnPlus\\test13.png";
        FileInputStream fileInputStream=null;
        FileOutputStream fileOutputStream=null;

        try {
            fileInputStream=new FileInputStream(srcFilepath);
            fileOutputStream=new FileOutputStream(dstFilepath);
            //定义一个数组,提高读取效率
            byte[] bytes = new byte[1024];
            int readLen=0;
            while((readLen=fileInputStream.read(bytes))!=-1){
                //读取到一个数组后写入新的文件
                fileOutputStream.write(bytes,0,readLen);//一定要这样写,否则会写入无关数据
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                fileInputStream.close();
                fileOutputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

二、FileReader类的使用

示例代码:

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class FileReader_ {
    public static void main(String[] args) {
        String filePath="D:\\Java_code\\LearnPlus\\news2.txt";
        FileReader fileReader=null;
        int data=0;
        char[] buf=new char[1024];
        int Len=0;
        //单个字符读取数据实现
        try {
            fileReader = new FileReader(filePath);
            while((data=fileReader.read())!=-1){
                System.out.print((char)data);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        //数组读取实现
        try {
            fileReader=new FileReader(filePath);
//            while((Len=fileReader.read(buf))!=-1){
//                for (int i = 0; i < Len; i++) {
//                    System.out.print(buf[i]);
//                }
//            }
            while ((Len=fileReader.read(buf))!=-1){
                System.out.print(new String(buf,0,Len));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                fileReader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

三、FileWriter

FIleWriter常用方法:

  1. new FIleWriter(File/String):覆盖模式,相当于流的指针在首端。
  2. new FileWriter(File/String,true):追加模式,相当于流的指针在末端。
  3. write(int):写入单个字符。
  4. write(char[ ]):写入指定数组。
  5. write(char[ ],off,len):写入指定数组的指定部分。
  6. write(String):写入整个字符串。
  7. write(String,off,len):写入字符串的指定部分。
    注意事项:FileWriter使用后,必须要把关闭(close)或刷新(flush),否则写入不到指定的文件。

代码示例:

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

public class FileWriter_ {
    public static void main(String[] args) {
        String filePath="D:\\Java_code\\LearnPlus\\news4.txt";
        FileWriter fileWriter=null;

        try {
            fileWriter=new FileWriter(filePath);
            fileWriter.write('H');
            fileWriter.write("我爱你!");
            fileWriter.write(1);

        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                fileWriter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值