输入输出流

输出流

  1. 字节输出流OutputStream 将内容输出到文件中
	 2. 用下面提供的方法可以不覆盖之前的文件内容,而是追加文件内容
	 3. 流操作使用后要关闭(放在finally代码块中)
		File file = new File("C:\\Users\\XXX\\Desktop\\tstIO.txt");
        OutputStream outputStream = new FileOutputStream(file,true);
        outputStream.write("hello world\n".getBytes());
        outputStream.close();
  1. 字符输出流,Writer:
		1. 字符流在输出到存储设备时,中间会有一个缓冲区,要用flush()或者close()方法将其实时写入到存储设备
        Writer writer = new FileWriter(file,true);
        writer.write("这是一个测试字符输入流");
        writer.flush();

输入流

  1. InputStream字节输入流,将内容读取。
		1. 下面len这个变量是指data这个数组使用的长度(如果读取的内容小于1024字节,那么len就是对应的字节长度
	    File file = new File("C:\\Users\\XXXX\\Desktop\\tstIO.txt");
        InputStream inputStream = new FileInputStream(file);
        byte[] data = new byte[1024];
        int len = inputStream.read(data);
        String  str = new String(data, 0, data.length);
        System.out.println(str);
		inputStream.close();
  1. Reader,字符输入流
        Reader reader  = new FileReader(file);
        char[] data = new char[4];
        int len;
        String str = "";
        String temp = "";
        while ((len = reader.read(data)) != -1){
            temp = new String(data, 0, len);
            str = str + temp;
        }

实现文件复制的操作

    public static void fileCopy(File file1, File file2) throws IOException {
        if(!file1.exists()){
            throw new IllegalArgumentException("非法输入");
        }
        InputStream inputStream = null;
        OutputStream outputStream = null;
        try {
            inputStream = new FileInputStream(file1);
            outputStream = new FileOutputStream(file2);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        byte[] data = new byte[4096];
        int len;
        while ((len = inputStream.read(data)) != -1){
            outputStream.write(data,0,len);
        }
    }

BufferedReader类

1. 创建该类的实例对象
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
2. 该类的一些实用方法(讲一个文件按照行来读取,可用于文件行数的统计)
	String str = "";
	while ((str = bufferedReader.readLine()) != null) {
	}
3. 可通过第二个方法来统计我们的代码行数,详情见上上篇博客;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值