package io;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

 

public class FileReaderDemo {
public static void main(String[] args) {

String path = "D:\\eclipse\\workspace\\javase\\src\\io\\FileInputStreamDemo.java";
String outPah = "c:/ganbo.txt";

File f = new File("D:\\eclipse\\workspace\\javase\\src\\io\\FileInputStreamDemo.java");
File f2 = new File(outPah);

//节点流
FileInputStream fin = null;
FileOutputStream fo = null;

//包装流
InputStreamReader inr = null;
OutputStreamWriter bpw = null;

//缓冲流
BufferedReader br = null;
BufferedWriter bw = null;

try {
//实例化输入流
fin = new FileInputStream(f);
inr = new InputStreamReader(fin);
br = new BufferedReader(inr);

//实例化输出流
fo = new FileOutputStream(f2); //注意这里FileOutputStream()还有一个重载的方法,其参数后面加上 true and false 表示是追加还是覆盖写入
bpw = new OutputStreamWriter(fo);
bw = new BufferedWriter(bpw);

//开始复制
String temp;
while((temp=br.readLine())!=null){
System.out.println(temp);

/**
* 注意这里向文件中写出一行,默认一行行尾是没有回车换行的,需要我们手动添加 "\r\n";
* \r表示回车,也就是使光标移动到当行的开始位置
* \n表示使光标跳到当前行的下一行
* 一般就是 : "\r\n" 组合着用,其作用相当于键盘上面的 enter键
*/
bw.write(temp+"\r\n");
bw.flush();
}

} catch (Exception e) {
e.printStackTrace();
}finally{

//关闭资源
if(br!=null){
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}if(bw!=null){
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

}
}

文件IO流完成文件的复制(复杂版本主要用来演示各种流的用途,不是最佳复制方案哦)的更多相关文章

  1. 文件IO操作..修改文件的只读属性

    文件的IO操作..很多同行的IO工具类都是直接写..但是如果文件有只读属性的话..则会写入失败..所以附加了一个只读的判断和修改.. 代码如下: /// <summary> /// 创建文 ...

  2. 2分钟理解文件IO -我对文件IO的理解与实验对比

    本文介绍了不同的IO方式以及他们之间的效率比较 1.一次读取写入单个字节(读取400M的文件浪费了很久,等了很久没读取完成,证明其效率很差) public class CopyFileDemo { p ...

  3. linux文件IO操作篇 (一) 非缓冲文件

    文件IO操作分为 2 种 非缓冲文件IO 和 缓冲文件IO 它们的接口区别是 非缓冲 open() close() read() write() 缓冲 fopen() fclose() fread() ...

  4. (数据科学学习手札77)基于geopandas的空间数据分析——文件IO

    本文对应代码和数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 在上一篇文章中我们对geopandas中的 ...

  5. IO流的文件复制

    1.IO流的分类 1.根据处理数据类型的不同分为: 字符流:1)Reader 读取字符流的抽象类 常用方法: read() 读取单个字符 read(char[] cbuf) 将字符读入数组. read ...

  6. io流(文件字符流(FileReader,FileWriter文件的复制))

    文件字符流(FileReader,FileWriter文件的复制) 文件的复制 效率低的方法 注意:字符流需要刷新操作,字节流不需要,只有刷新后才可以将程序中的内容导入到目标文件中 package c ...

  7. IO流----读取文件,复制文件,追加/插入文件

    文件结构 读取文件 第一种方式 public class Test { public static void main(String[] args) throws IOException { // 最 ...

  8. IO流(9)复制指定文件夹下指定文件到目的文件夹,并改名

    import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import ja ...

  9. IO流实现文件及文件夹的复制

    TestCopyDocuments.java package com.sxt.parc; /* * 复制文件夹 包含文本 视频 音频 用字节流 */ import java.io.BufferedIn ...

随机推荐

  1. 查看和指定SpringBoot内嵌Tomcat的版本

    查看当前使用的Tomcat版本号 Maven Repository中查看 比如我们需要查Spring Boot 2.1.4-RELEASE的内嵌Tomcat版本, 可以打开链接: https://mv ...

  2. 深入浅出的webpack构建工具--webpack4+vue搭建环境 (十三)

    深入浅出的webpack构建工具--webpack4+vue搭建环境 (十三) 从上面一系列的webpack配置的学习,我们现在来使用webpack来搭建vue的开发环境.首先我们来设想下我们的项目的 ...

  3. 你所不了解的javascript操作DOM的细节知识点(一)

    你所不了解的javascript操作DOM的细节知识点(一) 一:Node类型 DOM1级定义了一个Node接口,该接口是由DOM中的所有节点类型实现.每个节点都有一个nodeType属性,用于表明节 ...

  4. Android逆向学习资料

    Android逆向基础之Dalvik虚拟机: https://lyxw.github.io/archivers/Android%E9%80%86%E5%90%91%E5%9F%BA%E7%A1%80% ...

  5. python线程和进程编程对比

    import timefrom concurrent.futures import ThreadPoolExecutor,as_completedfrom concurrent.futures imp ...

  6. Caused by: java.lang.IllegalStateException: commit already called

    出现的情况,当FragmentTransaction是全局变量时,fragment智能调用一次commint: 异常的意思:commint已经被调用过了. 所以不要重复调用它就好了.

  7. jdk和cglib简单理解

    之前使用cglib的时候不需要将classLoader作为参数传入,但动态代理却要,带着这个疑惑进入这个方法: Proxy.newProxyInstance(classLoader, interfac ...

  8. Identity(四)

    本文摘自:ASP.NET MVC 随想录——探索ASP.NET Identity 身份验证和基于角色的授权,中级篇 探索身份验证与授权 在这一小节中,我将阐述和证明ASP.NET 身份验证和授权的工作 ...

  9. ubuntu 中iptables

    ubuntu中启动及关闭iptables 在ubuntu中由于不存在 /etc/init.d/iptales文件,所以无法使用service等命令来启动iptables,需要用modprobe命令. ...

  10. zookeepeer使用zkCli.sh命令

    一.连接服务器端 [root@sxl132 zookeepeer]# ./bin/zkCli. Connecting to -- ::, [myid:] - INFO [main:Environmen ...