文件的读写分为字节流和字符流两种方式。
字节流:InputStream OutputStream
( FileInputStream FileOutStream
DataInputStream DataOutputStream等)
字符流:Reader Writer
(FileReader FileWriter
BufferedReader BufferedWriter等)
例题:1文件的复制
文件的复制可以用字节输入流先是读到内存中,再用字节输出流读出进文件中。
先后用了FileInputStream 和缓冲流BufferedReader 比较两次时间长短
package cn321_0;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
public class FileCopy {
/**
* 字节输入输出流写入 用时11分钟
*
* @throws FileNotFoundException
*/
public static void main(String[] args) throws Exception {
FileCopy filecopy = new FileCopy();
String fileName = new String("D:\\哥的视频\\非娱乐\\双截棍\\单棍套路.flv");
String copyName1 = new String("F:\\1.flv");
filecopy.copyFile(fileName, copyName1);
}
// 复制文件的方法
public void copyFile(String fileName, String copyName1) throws Exception {
// 创建输入流对象
InputStream is = new FileInputStream(fileName);
// 创建输出流对象
OutputStream os = new FileOutputStream(copyName1);
long time1 = System.currentTimeMillis();
System.out.println("开始的时间是" + time1);
// //相当于是缓存 用时差1484
// byte [] content=new byte [1024];
//
// int i = 0;
// while ((i = is.read(content)) != -1) {
// os.write(content);
// }
int i=0;
while ((i = is.read()) != -1) {
os.write(i);
}
long time2 = System.currentTimeMillis();
System.out.println("结束的时间是" + time2);
System.out.println("前后的时间差是:" + (time2 - time1));
// 关闭输出流
is.close();
os.close();
}
}
package cn321_0;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class FileCopy2 {
/**
* BufferedReader/Writer缓冲流写入
*用时3402毫秒
* @throws IOException
*/
public static void main(String[] args) throws IOException {
FileCopy2 filecopy2=new FileCopy2();
String fileName=new String("D:\\哥的视频\\非娱乐\\双截棍\\单棍套路.flv");
String copyName=new String ("F:\\2.flv");
filecopy2.copyFile(fileName,copyName);
}
private void copyFile(String fileName, String copyName) throws IOException {
//创建输入流对象
InputStream is=new FileInputStream(fileName);
//创建缓冲流对象
BufferedInputStream bis=new BufferedInputStream(is);
//创建输出流对象
OutputStream os=new FileOutputStream(copyName);
//创建缓冲输出流对象
BufferedOutputStream bos=new BufferedOutputStream(os);
long time1=System.currentTimeMillis();
System.out.println("开始的时间是:"+time1);
int i=0;
while((i=bis.read())!=-1){
bos.write(i);
}
long time2=System.currentTimeMillis();
System.out.println("结束的时间是:"+time2);
System.out.println("两次的时间差是:"+(time2-time1));
//强制写入
bos.flush();
//关闭输入输出流
is.close();
os.close();
bis.close();
bos.close();
}
}
例题2 使用字符流实现文件的复制
package cn321;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileCopy {
public static void main(String args[]){
FileCopy filecopy=new FileCopy();
}
public FileCopy(){
//定义一个字符流对象
FileReader fr=null;
FileWriter fw=null;
try{
fr=new FileReader("D:\\teacher.java");
fw=new FileWriter("D:\\1.java");
//创建数组 相当于是缓存
char [] content=new char[1024];
int i=0;
//使用读进数组的方法
while((i=fr.read(content))!=-1){
String s=new String (content,0,i);
fw.write(content);
}
}catch(Exception e){
e.printStackTrace();
}finally{
//关闭输入流
try{
fw.close();
fr.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
}
使用缓冲字符流
package cn321;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileCopy2 {
public static void main(String args[]){
FileCopy2 filecopy2=new FileCopy2();
}
public FileCopy2(){
//定义一个字符流对象
FileReader fr=null;
BufferedReader br=null;
FileWriter fw=null;
BufferedWriter bw=null;
try{
fr=new FileReader("D:\\teacher.java");
br=new BufferedReader(fr);
fw=new FileWriter("D:\\1.java");
bw=new BufferedWriter(fw);
String s="";
//使用一行一行的读取的方法 效率比较高
while((s=br.readLine())!=null){
bw.write(s+"\r\n");//"\r\n"是回车换行
}
}catch(Exception e){
e.printStackTrace();
}finally{
//关闭输入流
try{
bw.close();
fw.close();
br.close();
fr.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
}
分享到:
相关推荐
文件读写监控工具是计算机系统管理和维护中不可或缺的软件,它们可以帮助用户跟踪、记录和分析系统中的文件操作,包括打开、创建、修改、删除等动作。这类工具在故障排查、性能优化、安全审计等方面有着广泛的应用。...
在易语言中,大文件读写是一个常见的需求,尤其在处理大数据、日志分析或者文件备份等场景下。本模块就是针对这种需求而设计的,名为“易语言大文件读写模块”。 该模块的核心功能是优化大文件的处理效率,避免一次...
在Android应用开发中,文件读写权限是至关重要的一个环节,因为这关乎到应用程序能否正常地存储和访问数据。Android操作系统采用严格的权限管理系统,确保应用只能在其被授权的范围内操作。下面将详细介绍Android中...
### Python中使用asyncio封装文件读写 #### 引言 在现代软件开发中,特别是在Web后端和服务端开发领域,非阻塞I/O技术变得越来越重要。这主要是因为随着互联网应用规模的增长,服务器需要处理成千上万个并发连接,...
Python 文件读写练习题 Python 语言中处理文件读写是非常重要的一部分,本文将通过实践 exercises 介绍 Python 中的文件读写操作。 文件读写的重要性 在实际应用中,文件读写操作是非常常见的,例如读取数据文件...
1、 文件读写 包括两个内容:查找文件中“java”字符串的个数;利用命令行参数显示文件的最后指定行。 在查找“java”字符串个数的程序中,先读出文件内容,再逐个字符对比,找出“java”字符,最终把结果写入另一...
在Android系统中,文件读写操作是开发过程中常见的任务,涉及到资源文件、数据区文件以及外部存储(如SD卡)的访问。以下是对这些操作的详细说明: 一、资源文件的读取 1. 从resource的raw中读取文件数据: 资源...
### MFC INI 文件读写详解 #### 一、概述 在 Windows 操作系统中,INI 文件是一种重要的配置文件格式,通常用于存储程序的配置信息。对于开发人员来说,掌握如何使用 MFC(Microsoft Foundation Classes)框架进行...
对于开发者来说,这意味着需要更新代码以适配这些新规则,尤其是在进行文件读写操作时。本文将详细探讨Android 13的读写权限变更,以及如何在小米14设备上处理txt文件的读写测试。 首先,理解Android 13中的存储...
对于大数据量的CSV文件,可以考虑使用更高效的文件读写方法,如`std::ifstream`和`std::ofstream`,或者使用内存映射文件(`CreateFileMapping`和`MapViewOfFile`)。 8. **测试与调试** 完成代码编写后,进行...
在编程领域,文件读写是常见的操作之一,尤其是在Windows应用程序开发中,MFC(Microsoft Foundation Classes)框架提供了方便的API来实现这一功能。MFC是一个C++类库,它封装了Windows API,使得开发者可以更加方便...
在C#编程语言中,文件读写操作是基础且至关重要的功能,允许程序与本地文件系统交互。本文将深入探讨如何在C#中执行文件的读写操作,以及如何进行文件删除。 首先,让我们了解C#中用于文件操作的主要类:`System.IO...
DWG文件读写开发库是专门用于处理DWG(Drawing)格式文件的工具,这种格式通常与AutoCAD软件紧密关联,用于存储二维和三维设计数据。这个开发库为程序员提供了在C++和C#编程环境中读取和写入DWG文件的能力,极大地...
"采用无缓冲方式实现文件读写" 本文档是武汉大学计算机学院《Windows原理与应用》课程实验报告,旨在介绍如何使用无缓冲方式实现文件读写。该实验报告的主要内容包括实验目的、实验设计、实验原理和实验步骤等方面...
C语言文件读写函数详解 在 Linux 操作系统中,C 语言提供了多种文件读写函数,包括非标准文件读写函数和标准文件读写函数。下面将对这两种类型的文件读写函数进行详细介绍。 非标准文件读写函数 非标准文件读写...
在Delphi编程环境中,文件读写是常见的操作,主要用于存储和检索数据。本文将深入探讨如何使用Delphi进行文本文件的读写操作,包括基本概念、常用函数和类,以及实际应用示例。 首先,了解文件系统的基本概念是至关...
在这个"**MFC txt文件读写**"的实践中,我们将探讨如何利用MFC来处理文本文件的读取和写入操作。 首先,我们需要了解MFC中的CFile类,它是处理文件操作的基础。CFile类提供了打开、关闭、读取和写入文件的基本方法...
本压缩包"开发windows驱动程序,实现监控文件读写操作.zip"提供了一个关于如何创建驱动程序以监控文件系统读写操作的实例。下面我们将深入探讨这一主题。 1. **驱动程序概述** - 驱动程序是硬件设备与操作系统之间...