IO流:用来进行设备间的数据传输问题。

IO流根据流向可以分为输入流和输出流,其中输出流,从一个设备向一个设备传数据,自然是先读取数据,所以输出流既是读取,同理输入流既是写入。

IO流又根据数据类型分为字节流和字符流,其中字节流又被称为万能流。

字节流:(用记事本打开读不懂)

输出流  InputStream(抽象类)

输入流 OutputStream(抽象类)

首先文件类File,创建文件有三种方式:

  1. File file = new File("E:\\a.txt");
  2. File file = new File("E:\\demo"); File file2 = new File(file," a.txt");

File file = new File("E:\\demo","a.txt");


字节输出流操作步骤:
    A:  创建字节输出流对象
    B:  写数据
    C:  释放资源

字节输入流操作步骤:

A:创建字节输入流对象

B:读取数据

C:释放资源

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;public class IOStream1 {public static void main(String[] args) throws IOException{FileInputStream fis = new FileInputStream("start.txt");FileOutputStream fos = new FileOutputStream("end.txt");//一次读取一个字节int by = 0;while((by=fis.read())!=-1){fos.write(by);fos.flush();}
/**    一次读取一个数组的字节byte[] bys = new byte[1024];int len = 0;while((len=fis.read(bys))!=-1){fos.write(bys, 0, len);fos.flush();}
**/fis.close();fos.close(); }
}

为了可以更高效的传输内容,InputStream类提供了一个缓冲区类,也就是BufferedInputStream类

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;public class IOStream3 {
public static void main(String[] args) throws IOException {BufferedInputStream bis = new BufferedInputStream(new FileInputStream("start.txt"));BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("end3.txt"));//一次读取一个字节int by = 0;while((by=bis.read())!=-1){bos.write(by);bos.flush();}
/**一次读取一个数组的字节byte[] bys = new byte[1024];int len = 0;while((len=bis.read(bys))!=-1){bos.write(bys, 0, len);bos.flush();}
**/bis.close();bos.close();
}
}

综上,通过字节流传输内容,总共有四种方式。

字符流其实就是字节流+转换流,字符流也就是通过记事本打开可以读懂。

字符输出流:Reader

字符输入流:Writer

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;public class IOZiFuStream {
public static void main(String[] args) throws IOException{InputStreamReader isr = new InputStreamReader(new FileInputStream("start.txt"));OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("end5.txt"));//一次读取一个字符int by = 0;while((by=isr.read())!=-1){osw.write(by);osw.flush();}
/**一次读取一个数组的字符char[] bys = new char[1024];int len = 0;while((len=isr.read(bys))!=-1){osw.write(bys, 0, len);osw.flush();}
**/isr.close();osw.close();
}
}

同样地,字符流也提供了一个缓冲区类BufferedReader和BufferedWriter更加快速的传输数据。

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;public class IOZiFuStream3 {
public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new FileReader("start.txt"));BufferedWriter bw = new BufferedWriter(new FileWriter("end7.txt"));
//一次读取一个字符  int by = 0;while((by=br.read())!=-1){bw.write(by);bw.flush();}
/**一次读取一个数组的字符char[] chs = new char[1024];int len = 0;while((len=br.read(chs))!=-1){bw.write(chs, 0, len);bw.flush();}
**/br.close();bw.close();
}
}

BufferedWriter的特有方法

public void newLine()

BufferedReader的特有方法

public String readLine()
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;public class IOZiFuStream5 {
public static void main(String[] args) throws IOException {BufferedReader brr = new BufferedReader(new FileReader("start.txt"));BufferedWriter bww = new BufferedWriter(new FileWriter("end9.txt"));String s = null;while((s=brr.readLine())!=null){bww.write(s);bww.newLine();bww.flush();}brr.close();bww.close();
}
}

以上就是IO流复制文件内容,我所学过的所有内容,后续如有补充会继续上传。

此文章仅记录自己的学习收获,学习成长。

IO流---复制文件内容相关推荐

  1. 字节流和字符流复制文件内容实例

    字节流和字符流复制文件内容实例 字节流: import java.io.File; import java.io.FileInputStream; import java.io.FileOutputS ...

  2. java io流复制文件简单实例

    java io流复制文件简单实例 实例1: package com.io;import java.io.BufferedInputStream; import java.io.BufferedOutp ...

  3. JAVA IO流复制文件夹及里面的所有文件

    public static void main(String[] args) throws Exception {//复制到哪个路径(path)中String path = "E:\\mai ...

  4. Java输入输出之文件字符IO流之文件内容加密

    目录 任务描述 相关知识 FileReader (文件字符输入流) FileReader 的构造方法 FileReader 的方法 FileWriter (文件字符输出流) FileWriter 构造 ...

  5. 复习IO流复制文件时,文件损坏并且文件变得超大(FileInputStream和FileOutputStream)数组复制

    这是我复习的时候自己敲的使用字节流数组形式来复制 package copy;import java.io.FileInputStream; import java.io.FileOutputStrea ...

  6. java 更新文件内容吗_java Io流更新文件内容

    标签: package com.hp.io; import java.io.FileOutputStream; import java.io.IOException; public class Fil ...

  7. Java IO流之【缓冲流和文件流复制文件对比】

    与文件流相比,缓冲流复制文件更快 代码: package Homework;import java.io.BufferedOutputStream; import java.io.File; impo ...

  8. java缓冲流 复制文件_java使用缓冲流复制文件的方法

    本文实例为大家分享了java使用缓冲流复制文件的具体代码,供大家参考,具体内容如下 [1] 程序设计 /*------------------------------- 1.缓冲流是一种处理流,用来加 ...

  9. Java基础教程:IO流与文件基础

    Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...

最新文章

  1. 机器学习陷入困境,谷歌大脑专家发文吐槽 AI 工程现状
  2. 安装jupyter后,使用时显示找不到命令(command not found)
  3. ShowDoc 软件开发团队接口文档管理利器
  4. matlab subs 慢,求助matlab程序计算速度过慢的原因
  5. mysql php 变量赋值,在MySQL UPDATE(PHP / MySQL)中使用变量
  6. CentOS下yum安装mcrypt错误:No package php-mcrypt available.解决方法
  7. JDK Windows安装
  8. 10个最棒的jQuery视频插件
  9. The Classic IQ Test
  10. android sdk shell,Android SDK命令行工具Monkey参数及使用解析
  11. centos7+docker+安装mysql5.7
  12. Mushroom Classification(蘑菇分类数据集)
  13. linux读取文件头错误,Linux系统grub常见错误问题解决
  14. 阿里云 禁用密码登录
  15. linux中ess33没有IP地址问题
  16. 【Windows】关于Windows Powershell找不到打不开修复方法
  17. (软件工程)-- 总体设计报告
  18. 模型推荐丨政务大数据项目案例模型分享
  19. 刘强东的“长期主义”:做正确的事,敢于追求极致
  20. SHA-256哈希函数实现

热门文章

  1. type ‘_Map<String, dynamic>‘ is not a subtype of type ‘Map<String, Object>‘
  2. 基于java互助平台设计_java毕业设计_springboot框架的校园互助网站设计
  3. mt6762芯片资料原理图分享
  4. MacOS 无法给腾讯会议等app麦克风授权解决办法
  5. 安卓4.0模拟器手机版_gta5警察模拟器手机版无限金币下载-gta5警察模拟器手机版最新版下载...
  6. 基于SMT32F103之无线遥控车及外围电子模块-佛系更
  7. 如何区分PCB通孔、盲孔、埋孔
  8. 计算机化自适应测验 英语,情绪调节的计算机化自适应测验
  9. html程序员表白前端网页源码 3D动态相册制作html
  10. “睡后收入”200万的清洁工彻底火了:你和马云的差距,不仅仅是钱!