需求:复制文本文件
分析:
  由于文本文件我们用记事本打开后可以读懂,所以使用字符流。
  而字符流有5种复制的方式:

首先写main方法

     public static void main(String[] args) throws IOException {
// 数据源
String startfile = "C:\\Users\\Administrator\\Desktop\\新建文件夹\\start.txt";
// 目的地
String endfile = "C:\\Users\\Administrator\\Desktop\\新建文件夹\\end.txt"; //method1(startfile,endfile);
//method2(startfile,endfile);
//method3(startfile,endfile);
//method4(startfile,endfile);
method5(startfile,endfile); }

第一种方式:基本字符流一次读取一个字符

     private static void method1(String startfile,String endfile) throws IOException {
// 基本字符流一次读写一个字符
//封装数据源
FileReader fr = new FileReader(startfile);
//封装目的地
FileWriter fw = new FileWriter(endfile); //一次读写一个字符
int ch = 0;
while((ch = fr.read()) != -1){
fw.write(ch);
}
//释放资源
fr.close();
fw.close();
}

第二种方式:基本字符流一次读取一个字符数组

     private static void method2(String startfile, String endfile) throws IOException {
// 基本字符流一次读写一个字符数组
FileReader fr = new FileReader(startfile);
FileWriter fw = new FileWriter(endfile); char[] ch = new char[1024];
int len = 0;
while((len = fr.read(ch)) != -1){
fw.write(ch,0,len);//这里需要注意
}
fr.close();
fw.close();
}

第三种方式:缓冲字符流一次读取一个字符

     private static void method3(String startfile, String endfile) throws IOException{
// 字符缓冲流一次读取一个字符
BufferedReader br = new BufferedReader(new FileReader(startfile));
BufferedWriter bw = new BufferedWriter(new FileWriter(endfile));
int ch = 0;
while((ch = br.read()) != -1){
bw.write(ch);
}
br.close();
bw.close(); }

第四种方式:缓冲字符流一次读取一个字符数组

     private static void method4(String startfile, String endfile) throws IOException {
// 字符缓冲流一次读取一个字符数组
BufferedWriter bw = new BufferedWriter(new FileWriter(endfile));
BufferedReader br = new BufferedReader(new FileReader(startfile));
char[] ch = new char[1024];
int len = 0;
while((len = br.read(ch)) != -1){
bw.write(ch,0,len);
}
br.close();
bw.close(); }

第五种方式:缓冲字符流一次读取一个字符串(熟练掌握)

    private static void method5(String startfile, String endfile) throws IOException {
// 字符缓冲流一次读取一个字符串
BufferedReader br = new BufferedReader(new FileReader(startfile));
BufferedWriter bw = new BufferedWriter(new FileWriter(endfile));
String line = null;
while((line = br.readLine()) != null){
bw.write(line);
bw.newLine(); }
br.close();
bw.close(); }

java 21 - 8 复制文本文件的5种方式的更多相关文章

  1. java 21 - 9 复制图片的4种方式

    需求:复制图片 分析: 因为图片我们用记事本打开后无法读懂,所以用字节流 并且字节流复制有4种方式,所以我们尝试4种方式. 推荐第四种:缓冲字节流一次读取一个字节数组 首先写main方法: publi ...

  2. Java基础知识强化之IO流笔记43:IO流练习之 复制文本文件的 5 种方式案例

     1. 案例分析: 分析: 复制数据,如果我们知道用记事本打开并能够读懂,就用字符流,否则用字节流. 通过该原理,我们知道我们应该采用字符流更方便一些. 而字符流有5种方式,所以做这个题目我们有5种方 ...

  3. Java基础知识强化之IO流笔记44:IO流练习之 复制图片的 4 种方式案例

    1. 复制图片的 4 种方式案例: 分析: 复制数据,如果我们知道用记事本打开并能够读懂,就用字符流,否则用字节流. 通过该原理,我们知道我们应该采用字节流. 而字节流有4种方式,所以做这个题目我们有 ...

  4. Java反射获取class对象的三种方式,反射创建对象的两种方式

    Java反射获取class对象的三种方式,反射创建对象的两种方式 1.获取Class对象 在 Java API 中,提供了获取 Class 类对象的三种方法: 第一种,使用 Class.forName ...

  5. js 复制文本的四种方式

    js 复制文本的四种方式 一.总结 一句话总结:js文本复制主流方法:document的execCommand方法 二.js 复制文本的四种方式 纯 转载复制,非原创 原地址:http://www.c ...

  6. mysql复制表的两种方式

    mysql复制表的两种方式. 第一.只复制表结构到新表 create table 新表 select * from 旧表 where 1=2 或者 create table 新表 like 旧表 第二 ...

  7. Java使用基本字节流OutputStream的四种方式对于数据复制(文本,音视频,图像等数据)

    //package 字符缓冲流bufferreaderDemo; import java.io.BufferedOutputStream; import java.io.FileInputStream ...

  8. Java数组声明与拷贝的几种方式

    Java数组声明的三种方式 第一种(声明并初始化):          数据类型[] 数组名={值,值,...};          例:int[] a = {1,2,3,4,5,6,7,8};    ...

  9. 总结java中文件拷贝剪切的5种方式-JAVA IO基础总结第五篇

    本文是Java IO总结系列篇的第5篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...

随机推荐

  1. DOJO官方API翻译或解读-dojo/_base/lang --hitch()

    hitch() hitch() 是一个函数,会在给定的上下中执行给定一个执行函数.hitch允许你去控制一个函数如何执行,往往在异步操作中起作用. 我们常常会写出这样的代码:(博主:这个代码意图在&q ...

  2. UUID(uuid)js 生成

    全局唯一标识符(GUID,Globally Unique Identifier)也称作 UUID(Universally Unique IDentifier) . GUID是一种由算法生成的二进制长度 ...

  3. 使用HyperV虚拟机装系统

    新建虚拟机 新建虚拟机 进行相关参数设置 选择系统安装镜像位置,名称及位置 指定代数一般为1代即可 为虚拟机运行分配内存 创建虚拟硬盘或连接已有虚拟硬盘,并分配硬盘空间 核对创建虚拟机相关信息 安装系 ...

  4. 原创:SAP LVC ALV编辑小技巧

    前两天有个打印需求变更,需要在ALV显示列表中添加两个字段,可编辑,而我自己用的是函数:REUSE_ALV_GRID_DISPLAY_LVC 因为之前做可编辑基本都是固定套路,定义类,画屏幕.... ...

  5. 关灯游戏源码(iOS)

    就是点一下灯 它本身和周围4盏灯会变色 ViewController.m文件 #import "ViewController.h" #import "UIView+cha ...

  6. UITableVIew 滚动流畅性优化

    影响UITableViewUITableView滚动的流畅性原因: 1. 在代理方法中做了过多的计算占用了 UI 线程的时间 2.同上 3.Cell 中 view 的组织复杂,比如使用layer并不会 ...

  7. iOS 开发笔记

    1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现clear Color无法使用) 2,NSDate使用 3,UTTabviewCell 未 ...

  8. jar包双击执行程序

    源文件:MyMenuTest.java 编译结果: C:\Users\zhangbz\Desktop\demo>javac MyMenuTest.java C:\Users\zhangbz\De ...

  9. win7操作技巧

    Q : 打开文件夹默认最大化A :随便打开一个文件夹 鼠标移动到左上角 然后点击鼠标左键 选择“最大化” 后关闭 之后每次打开就是最大化了

  10. leveldb源码分析—Recover和Repair

    leveldb作为一个KV存储引擎将数据持久化到磁盘,而对于一个存储引擎来说在存储过程中因为一些其他原因导致程序down掉甚至数据文件被破坏等都会导致程序不能按正常流程再次启动.那么遇到这些状况以后如 ...