Java使用文件通道复制文件】的更多相关文章

两种文件通道复制文件方式的性能比较 import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import…
与文件流相比,缓冲流复制文件更快 代码: package Homework; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.text.SimpleDateFormat; /** * 1 )将"今年是反法西斯胜…
1.  在JAVA传统的IO系统中,读取磁盘文件数据的过程如下: 以FileInputStream类为例,该类有一个read(byte b[])方法,byte b[]是我们要存储读取到用户空间的缓冲区.参看read(byte b[])方法的源码,可知,它会在内部再调用readBytes(b, 0, b.length)方法,而且readBytes(b, 0, b.length)方法是一个native方法(即本地方法),最终通过这个本地方法来发起一次系统调用,即调用系统内核的read()方法,内核从…
Java I/O流 复制文件速度对比 首先来说明如何使用Java的IO流实现文件的复制: 第一步肯定是要获取文件 这里使用字节流,一会我们会对视频进行复制(视频为非文本文件,故使用之) FileInputStream fis = new FileInputStream("copyFileName.format");// 用于读取文件 FileOutputStream fos = new FileOutputStream("generatedFileName.format&qu…
控制台程序,除了使用Files类中使用copy()方法将文件复制外,还可以使用FileChannel对象复制文件,连接到输入文件的FileChannel对象能直接将数据传输到连接到输出文件的FileChannel对象中而不涉及显式的缓冲区. 本例用来对命令行参数设定的文件进行复制.文件被复制到一个类似在原始目录下创建的备份文件中.新文件的名称通过在原始文件名称的后面附加多次“_backup”以获得唯一文件名. import static java.nio.file.StandardOpenOpt…
通道是什么 通道式(Channel)是java.nio的第二个主要创新.通道既不是一个扩展也不是一项增强,而是全新的.极好的Java I/O示例,提供与I/O服务的直接连接.Channel用于在字节缓冲区和位于通道另一侧的实体(通常是一个文件或套接字)之间有效地传输数据. 通常情况下,通道与操作系统的文件描述符(FileDescriptor)和文件句柄(FileHandler)有着一对一的关系.虽然通道比文件描述符更广义,但开发者经常使用到的多数通道都是连接到开放的文件描述符的.Channel类…
一.通道是什么 通道式(Channel)是java.nio的第二个主要创新.通道既不是一个扩展也不是一项增强,而是全新的.极好的Java I/O示例,提供与I/O服务的直接连接.Channel用于在字节缓冲区和位于通道另一侧的实体(通常是一个文件或套接字)之间有效地传输数据. 通常情况下,通道与操作系统的文件描述符(FileDescriptor)和文件句柄(FileHandler)有着一对一的关系.虽然通道比文件描述符更广义,但开发者经常使用到的多数通道都是连接到开放的文件描述符的.Channe…
package test_demo.fileoper; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /* * 字节流操作,复制文件 * 输入流:从文件中读取数据,存放在字节数组中 * 输出流:将字节数组中存放的数据输出到文件中 * 注意关闭输入输出流 * */ public class ByteInOutSteamOper { public static…
java i/o 复制文件 public static void main(String[] args) throws Exception { // TODO 自动生成的方法存根 if(args.length != 2) { System.out.println("您输入的参数有误"); System.exit(1); } if(args[0].equals(args[1])) { System.out.println("源文件和目标文件不能一致"); System…
clear clc cd('C:\Users\xx\Desktop\learning'); % 设置当前目录 % 此时learning文件夹中有:文件夹x, 文件夹y, 文件a.png, 文件b.png movefile('a.png', 'b.png'); % 把a.png剪切成b.png(a.png不存在了),实际上相当于改名 copyfile('c.png', 'd.png'); % 把c.png复制成d.png(c.png依然存在) movefile('b.png', 'x'); % 把…
文件结构 读取文件 第一种方式 public class Test { public static void main(String[] args) throws IOException { // 最好别用FileReader,容易漏读 // 如果是window系统,/需要换成\ FileInputStream in = new FileInputStream("/Users/mac/eclipse-workspace/Demo/src/Test/file.txt"); byte[]…
package kimoji; import java.io.*; public class FileTest { public static void main(String[] args) throws IOException { out1("D:\\ppt\\Oracle_SQL基礎知識.ppt", "aaa.ppt"); out2("D:\\ppt\\Oracle_SQL基礎知識.ppt", "aaa1.ppt");…
自定义函数:实现文件复制操作有形参(2个) 没有返回值相似版(不用) def copyFile(src,dest): #1.打开两个文件:1个关联读操作,1个关联写操作 fr=open(src,'rb') fw=open(dest,'wb') #读和写操作 content=fr.read() fw.write(content) #关闭两个文件 fw.close() fr.close() def copyFile01(src,dest): #1.打开两个文件:1个关联读操作.1个关联写操作 fr=…
下面是代码:注意: 1.if [ expression ],表达式两边需要空格 2.a=$[aa],字符串转为int类型 3.赋值的时候不能有空格 #!/bin/shell fn="file_1" to="file_2" for file in `ls $fn` do echo $file aa=`ls -l $fn/$file | awk '{ print $5}'` echo $aa a=$[aa] ];then `cp $fn/$file $to/$file`…
bool CopyFile(const std::string &src, const std::string &dest) { std::ifstream fin(src.c_str(), std::ios::in | std::ios::binary); if(!fin) { std::cout << "open in file[" << src << "] failed" << std::endl…
转载自:http://jingyan.baidu.com/article/ff4116259c2d7712e4823780.html 在Java编程中,复制文件的方法有很多,而且经常要用到.我以前一直是缓冲输入输出流来实现的(绝大多数人都是如此),近来在研究JDK文档时发 现,用文件通道(FileChannel)来实现文件复制竟然比用老方法快了近三分之一.下面我就来介绍一下如何用文件通道来实现文件复制,以及在效率上 的对比 用文件通道的方式来进行文件复制  /**     * 使用文件通道的方式…
前面介绍了字节缓存的一堆概念,可能有的朋友还来不及消化,虽然文件通道的用法比起传统I/O有所简化,可是平白多了个操控繁琐的字节缓存,分明比较传统I/O更加复杂了.尽管字节缓存享有缓存方面的性能优势,但传统I/O也有缓存输入输出流呀,大家都有缓存机制,凭什么说NIO的文件处理更高效?之所以目前还看不出文件通道的性能优势,是因为前面介绍的仅限于它的基本用法,尚未涉及到高级特性,接下来阐述文件通道的真正杀手锏:使用通道复制文件.复制文件的常规做法很简单,从源文件中读出数据,再将数据写进目标文件.采取文…
FileChannel 提供了一种通过通道来访问文件的方式,它可以通过带参数 position(int) 方法定位到文件的任意位置开始进行操作,还能够将文件映射到直接内存,提高大文件的访问效率.本文将介绍其详细用法和原理. 1. 通道获取 FileChannel 可以通过 FileInputStream, FileOutputStream, RandomAccessFile 的对象中的 getChannel() 方法来获取,也可以同通过静态方法 FileChannel.open(Path, Op…
文件复制步骤 代码: package 文件流应用复制文件; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class Test { public static void main(String[] args){ //获取需要复制…
前面介绍的各色流式IO在功能方面着实强大,处理文件的时候该具备的操作应有尽有,可流式IO在性能方面不尽如人意,它的设计原理使得实际运行效率偏低,为此从Java4开始增加了NIO技术,通过全新的架构体系带来了可观的性能提升.NIO是“Non-blocking IO”的缩写,意思是非阻塞的IO,与之相对应,传统的流式IO又被称作BIO(“Blocking IO”的缩写),意即阻塞的IO.所谓阻塞与非阻塞,说起来挺拗口,令人不知所云,这都是设计师脑袋短路惹的祸,发明了这么难懂的词汇,害得初学者一脸懵逼…
单个文件复制 FileInputStream input=new FileInputStream("C://360//fay.jpg"); FileOutputStream output=new FileOutputStream("D://Test//fay2.jpg"); //读取文件内容 byte[] bytes=new byte[6]; int sum=0; while (input.read(bytes)==bytes.length){ output.wri…
最近在准备面试,翻了翻自己以前写的Demo,发现自己写了不少的工具包,今天整理了一下,分享给大家. 本文包含以下Demo: 1.常用方法测试 2.在文件中间插入一段新的数据 3.多线程下载文件 4.多线程复制文件 5.超大文件的读写 具体注意事项我会全部写在注释中,我就不再啰嗦介绍RandomAccessFile怎么去用,它跟普通文件读写类似,不过就是多了一个游标,可以从文件指定位置开始读取,大家可以一边参照API,一边看我的Demo执行情况,试着自己写写. 大家有好的改进意见.建议或者有什么问…
1. java 读取大文件的困难 java 读取文件的一般操作是将文件数据全部读取到内存中,然后再对数据进行操作.例如 Path path = Paths.get("file path"); byte[] data = Files.readAllBytes(path); 1 2 这对于小文件是没有问题的,但是对于稍大一些的文件就会抛出异常 Exception in thread "main" java.lang.OutOfMemoryError: Required…
项目中有这个需求: 1)上传文件通过公司平台的校验,校验成功后,通过接口,返回文件流: 2)我们根据这个文件流进行操作.这里,先将文件流复制文件到项目临时目录WEB-INF/temp;文件使用完毕,删除之: 下面是模拟代码: FileUtil.java: package com.java.file; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; impor…
dos里面没有复制文件夹这一个命令,这是个复合的命令,是由新建文件夹和将原文件夹里的东西全部复制进去两步组成的.就像剪贴一样,是先建立文件,然后再删除源文件.这是一种复合型的操作. 复制文件夹: 1.新建文件夹 2.将原文件夹中的文件全部复制到目的文件夹中 例子: @echo off md d:\aa xcopy /e "e:\aa" "d:\aa" echo 复制成功 pause&exit 用到的一个批处理: xcopy "C:\Users\po…
  # 练习: # 1. 写程序,实现文件的复制,(注:只复制文件,不复制文件夹) # 要求: # 1) 要考虑文件关闭的问题 # 2) 要考虑超大文件无法一下加载到内存的问题 # 3) 要能复制二进制文件(非文本文件) def copy(src_file, dst_file): ''' src_file : 源文件名 dst_file : 目标文件名 返回值: True成功, False 失败 ''' try: fr = open(src_file, 'rb') try: fw = open(…
命名空间:namespace System.IO.Compression 压缩: //目标文件夹 string fileDirPath = "/Downloads/试题" + userId + "_" + courseId; string downPath = Server.MapPath(fileDirPath); if (!Directory.Exists(downPath)) { Directory.CreateDirectory(downPath); } S…
项目中需要复制整个文件夹,有时候还需要将整个文件夹传输到远程服务器. 这里就要递归遍历整个文件夹了,想看递归遍历文件夹的代码. function deepScanDir($dir) { $fileArr = array (); $dirArr = array (); $dir = rtrim($dir, '//'); if (is_dir($dir)) { $dirHandle = opendir($dir); while (false !== ($fileName = readdir($dir…
以下是把sourceDir目录下的以.JPG结尾的文件所有拷贝到targetDir目录下: <span style="font-size:18px;">>>>import os >>> import os.path >>> import shutil >>> def copyFiles(sourceDir,targetDir): for files in os.listdir(sourceDir): s…
[toc] 创建时间:2019-08-12 注意:在win10,v10.16.1 环境运行无问题 首先引入相关包(会在使用处具体说明): const fs = require('fs') const path = require('path') const child_process = require('child_process') const fsEx = require('fs-extra') /** * @des 该包为实验性API */ const fsPromises = requ…