IO-文件 File 复制 读写 总结
以字节流读写的三种方式
public class Test {private static final String FILE_PATH = "e:\\";private static final String FILE_TYPE = ".exe";private static final String FILE_FROM = FILE_PATH + 0 + FILE_TYPE;private static final String COPY_FILE_1 = FILE_PATH + 1 + FILE_TYPE;private static final String COPY_FILE_2 = FILE_PATH + 2 + FILE_TYPE;private static final String COPY_FILE_3 = FILE_PATH + 3 + FILE_TYPE;public static void main(String[] args) throws IOException {copyByBufStream(FILE_FROM, COPY_FILE_1);copyByBufArray(FILE_FROM, COPY_FILE_2);copyByByte(FILE_FROM, COPY_FILE_3);}/*** 利用缓冲输入流读取到一个缓冲容器后再写入。建议使用*/public static boolean copyByBufStream(String filePathFrom, String filePathTo) {try {BufferedInputStream bufis = new BufferedInputStream(new FileInputStream(filePathFrom));BufferedOutputStream bufos = new BufferedOutputStream(new FileOutputStream(filePathTo));int ch = 0;while ((ch = bufis.read()) != -1) {bufos.write(ch);}bufos.close();bufis.close();return true;} catch (FileNotFoundException e) {e.printStackTrace();return false;} catch (IOException e) {e.printStackTrace();return false;}}/*** 每次读取一个指定长度数组的字节。建议使用*/public static boolean copyByBufArray(String filePathFrom, String filePathTo) {try {FileInputStream fis = new FileInputStream(filePathFrom);FileOutputStream fos = new FileOutputStream(filePathTo);byte[] buf = new byte[1024];int len = 0;while ((len = fis.read(buf)) != -1) {fos.write(buf, 0, len);}fos.close();fis.close();return true;} catch (FileNotFoundException e) {e.printStackTrace();return false;} catch (IOException e) {e.printStackTrace();return false;}}/*** 一次读取一个字节。千万不要用,速度超级慢!*/public static boolean copyByByte(String filePathFrom, String filePathTo) {try {FileInputStream fis = new FileInputStream(filePathFrom);FileOutputStream fos = new FileOutputStream(filePathTo);int ch = 0;while ((ch = fis.read()) != -1) {fos.write(ch);}fos.close();fis.close();return true;} catch (FileNotFoundException e) {e.printStackTrace();return false;} catch (IOException e) {e.printStackTrace();return false;}}}
以字符流读写的三种方式
public class Test {private static final String FILE_PATH = "e:\\";private static final String FILE_TYPE = ".txt";private static final String FILE_FROM = FILE_PATH + 0 + FILE_TYPE;private static final String COPY_FILE_1 = FILE_PATH + 1 + FILE_TYPE;private static final String COPY_FILE_2 = FILE_PATH + 2 + FILE_TYPE;private static final String COPY_FILE_3 = FILE_PATH + 3 + FILE_TYPE;public static void main(String[] args) throws IOException {//注意,只能复制纯文本格式的文件,否则就会出现乱码copyByBufLine(FILE_FROM, COPY_FILE_1);copyByBufArray(FILE_FROM, COPY_FILE_2);copyByChar(FILE_FROM, COPY_FILE_3);}/*** 一次写入一行字符*/public static boolean copyByBufLine(String filePathFrom, String filePathTo) {try {BufferedReader bufr = new BufferedReader(new FileReader(filePathFrom));BufferedWriter bufw = new BufferedWriter(new FileWriter(filePathTo));String line = null;//另外开辟一个缓冲区,存储读取的一行数据,返回包含该行内容的字符串,不包含换行符,如果已到达流末尾,则返回【 null】while ((line = bufr.readLine()) != null) {bufw.write(line);bufw.newLine();// 写入一个行分隔符bufw.flush();}bufr.close();bufw.close();return true;} catch (FileNotFoundException e) {e.printStackTrace();return false;} catch (IOException e) {e.printStackTrace();return false;}}/*** 一次写入指定个数的字符*/public static boolean copyByBufArray(String filePathFrom, String filePathTo) {try {BufferedReader bufr = new BufferedReader(new FileReader(filePathFrom));BufferedWriter bufw = new BufferedWriter(new FileWriter(filePathTo));char[] buf = new char[1024];int len = 0;while ((len = bufr.read(buf)) != -1) {bufw.write(buf, 0, len);bufw.flush();len = 0;}bufr.close();bufw.close();return true;} catch (FileNotFoundException e) {e.printStackTrace();return false;} catch (IOException e) {e.printStackTrace();return false;}}/*** 一次写入一个字符*/public static boolean copyByChar(String filePathFrom, String filePathTo) {try {BufferedReader bufr = new BufferedReader(new FileReader(filePathFrom));BufferedWriter bufw = new BufferedWriter(new FileWriter(filePathTo));int ch = 0;while ((ch = bufr.read()) != -1) {bufw.write(ch);//写入单个字符}bufr.close();bufw.close();return true;} catch (FileNotFoundException e) {e.printStackTrace();return false;} catch (IOException e) {e.printStackTrace();return false;}}}
IO-文件 File 复制 读写 总结的更多相关文章
- Java基础面试操作题: File IO 文件过滤器FileFilter 练习 把一个文件夹下的.java文件复制到另一个文件夹下的.txt文件
package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File ...
- Go标准库之读写文件(File)
Go标准库之读写文件(File) 创建一个空文件 package main import ( "log" "os" ) func main() { file, ...
- Java IO流之【缓冲流和文件流复制文件对比】
与文件流相比,缓冲流复制文件更快 代码: package Homework; import java.io.BufferedOutputStream; import java.io.File; imp ...
- java学习笔记(九):Java 流(Stream)、文件(File)和IO
Java 的控制台输入由 System.in 完成. 为了获得一个绑定到控制台的字符流,你可以把 System.in 包装在一个 BufferedReader 对象中来创建一个字符流.需要import ...
- Java - 17 Java 流(Stream)、文件(File)和IO
Java 流(Stream).文件(File)和IO Java.io包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io包中的流支持很多种格式,比如:基本类型. ...
- [PY3]——IO——文件读写
文件打开和关闭 # 使用open 打开文件,返回时值是一个 File-like对象 f.open('/test/file') # 使用read读取文件 f.read( ) # 使用close关闭文件 ...
- 流Stream 文件File 流IO
Java 流(Stream).文件(File)和IO Java.io 包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io 包中的流支持很多种格式,比如:基本类 ...
- c# 命令行下编译c#文件 // c# file类读写文件
c# 命令行下编译c#文件 2010-03-01 15:02:14| 分类: c# 学习|字号 订阅 在 开始 ——>程序 ——>vstool中打开vs2008命令提示. 通过 ...
- 20180803-Java 流(Stream)、文件(File)和IO
Java 流(Stream).文件(File)和IO 下面的程序示范了用read()方法从控制台不断读取字符直到用户输入"q". // 使用BufferedReader 在控制台读 ...
随机推荐
- Java学习----方法的重载
一个类中有多个同名的参数不一样的方法. 作用:可以根据不同的条件调用不同的方法. 注意:java不会因为方法的返回类型或者权限的不同而判断为不同的两个方法. public class Student ...
- 用批处理来重启IIS的应用程序池
批处理很简单,先Stop再Start就行,代码如下(apppoolName是应用程序池的实例名):c:\windows\system32\inetsrv\AppCmd.exe stop apppool ...
- Ecshop 数据库操作方法getRow、getAll、getOne区别
ECShop没有使用一些开源的数据库操作类,比如adodb或者PEAR,而是封装了自己的实现.这样做的好处是实现非常轻量,大大减小了分发包的文件大小.另外,当网站需要做memcached缓存时,也可以 ...
- Hadoop-CDH5.7.0 for CentOS7
一.需求 系统 CentOS 7 最小化安装 JDK环境 JDK版本:1.8.0_91 jdk-8u91-linux-x64.rpm 下载地址:http://www.oracle.com/techne ...
- Python列表和字典的方法总结
列表方法: 方法 说明 append( item ) 在列表末尾插入(item ) count( element ) 返回element在列表中出现的次数 extend( newlist ) 将new ...
- WEB兼容性之JS
1. 获取iframe的window对象 //三种方法 window.iframeName window.frames[iframeName] document.getElementById(ifra ...
- [Apio2014]回文串
http://www.lydsy.com:808/JudgeOnline/problem.php?id=3676 这是一道回文树裸题,具体如何建图见http://blog.csdn.net/u0133 ...
- 『Python』Python 调用 ZoomEye API 批量获取目标网站IP
#### 20160712 更新 原API的访问方式是以 HTTP 的方式访问的,根据官网最新文档,现在已经修改成 HTTPS 方式,测试可以正常使用API了. 0x 00 前言 ZoomEye 的 ...
- poj 3114 Countries in War
http://poj.org/problem?id=3114 #include <cstdio> #include <cstring> #include <queue&g ...
- 使用Windows 系统性能监控来报警磁盘空间不足
http://blog.csdn.net/jiangxinyu/article/details/4370288