jAVA基础 提高文件复制性能之多线程复制文件 利用IO流中的随机访问文件 RandomAccessFile 和文件通道 FileChanne 复制文件可大大提高文件的读写效率,在此基础上利用多线程复制文件使其性能更优。因线程的个数可根据文件的大小及需求而定。其大概原理是根据给定的线程个数,将文件分段,每个线程负责的数据大小=文件长度/线程个数,将不能除尽的部分留给最后一段文件所分配的线程处理。以下是实现代码及自己理解的注释,多有偏差请...
场景
给idea中复制文件时,发现一直提示这个,同时出现2个文件。一个old,一个tmp。
报错信息: The file was renamed to User.java___jb_old___.idea 提示 The file was renamed to User.java___jb_old___. Your changes were written to User.java___jb_tmp___.
删掉了之后仍然报错,这可奇怪了。
解决方案
1、在文件系统里面将这几个文件都删除,实测无效。 2、重启idea,实测无效。 3、找半天,发现是copy文件时会弹出是否复制...
相关文章:Java中如何通过字节输入流读取文件? 相关文章:Java中如何通过字节输出流向文件中写内容?
本篇:Java中如何复制文件?
package test03;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;/*** 复制文件,通过边读边写的方式*/
public class Copy {public static void main(String[] args) {FileInputStream fis = null;FileOutput...
1,复制固定文件到某个目录
// 复制文件后,给文件重命名,带时间戳public static void addFileTime() throws Exception {String recordtime = "";Date dt = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); recordtime = sdf.format(dt); System.out.println("recordtime = " +recordtime);// 复制文件后,在文件名后加日期File dstFile = new File("E:\\testfile\\copyto\\csvTest_...
一:复制单级文件
package 复制文件;import java.io.*;public class 复制单级文件 {public static void main(String[] args) throws IOException{//这是要复制的文件File f = new File("D:\\c");//获取要复制的文件的名字String fName = f.getName();//目的目录在TEXT下,名字与要复制的文件的名字相同File f2 = new File("TEXT",fName);//如果目的目录不存在,则创建文件if(!f2.exists()){f2.mkdir();}//获取源目录里面的File集合...
Java 复制文件异常处理方案
抛出异常private static void method4() throws IOException{}try . . .catch . . .finally 的做法:try {可能出现异常的代码;}catch(异常类名 变量名){异常的处理代码;}finally{执行所有的清除操作;}JDK7改进方案try(定义流对象) {可能出现异常的代码;} catch(异常名 变量名) {异常的处理代码;}**自动释放资源**JDK9 改进方案定义输入流对象:定义输出流对象:try(输入流对象; 输出流对象) {可能出现异常的...
Java I/O流 复制文件速度对比首先来说明如何使用Java的IO流实现文件的复制:
第一步肯定是要获取文件
这里使用字节流,一会我们会对视频进行复制(视频为非文本文件,故使用之)
FileInputStream fis = new FileInputStream("copyFileName.format");// 用于读取文件
FileOutputStream fos = new FileOutputStream("generatedFileName.format"); // 用于生成文件,若文件不存在,则会新生成
第二步得到文件后就要进行复制
由第一步可...
不用Ctrl+c和Ctrl+v复制文件,用java代码来实现文件的复制
public class Test4 {public static void main(String[] args) {System.out.println("输入文件路径:");String s1 = new Scanner(System.in).nextLine();File from = new File(s1);if(!from.isFile()) {System.out.println("请输入正确的文件");return;}System.out.println("请输入目标文件路径:");String s2 = new Scanner(System.in).nextLine();File to = new File(s2);...
import com.jcraft.jsch.*;public class App {
public static void main(String args[]) {JSch jsch = new JSch();Session session = null;try {session = jsch.getSession("Username", "Host", PORT NO);session.setConfig("StrictHostKeyChecking", "no");session.setPassword("Password");session.connect();Channel channel = session.openChannel("sftp");channel.connect();ChannelSftp sftpChannel = (ChannelSftp) channel...
什么java复制文件的方法可以处理使用tildes(?),特别是在Linux中,而不必用System.getProperty(“user.home”)或“/ home /”手动替换代字号?
例如:我想将?/ this / path / file.txt复制到~usera / other / path / filea.txt
我尝试过使用Files.copy(Path a, Path b),FileUtils.copyFile( File a, File b),FileInputStream& FileOutputStream解决方法:外壳处理波浪扩展. Java中没有方法可以做到这一点.您可以使用System.getPropert...
我想使用FileStream在Java中复制文件.这是我的代码.FileInputStream infile = new FileInputStream("in");
FileOutputStream outfile = new FileOutputStream("out");byte[] b = new byte[1024];
while(infile.read(b, 0, 1024) > 0){outfile.write(b);
}infile.close();
outfile.close();我使用vim来查看我的文件.输入文件“in”Hello World1
Hello World2
Hello World3输出文件“输出”Hello World1
Hello World2
Hello World3
^...
什么是更好的选择(在性能方面):使用fileinputstream和fileoutputstream复制文件或从Java运行特定于操作系统的命令复制命令?解决方法:我非常确定使用特定于操作系统的复制命令会比简单的自编写解决方案更快或更快.操作系统特定的命令可能使用合理的缓冲区大小和其他优化,否则您必须自己弄清楚.
编辑:x-x是对的,你不应该直接调用copy命令.我认为Java已经有了一个复制方法,比如File.copy()或其他东西,但我找不到任何东西,甚至在JDI...
是否有本机JDK代码来复制文件(缓冲区,流或其他)?解决方法:如果用“native”表示“Java标准API的一部分”(而不是平台相关的代码,在Java世界中通常称为“本机”),而“复制文件”则表示“采用文件的单一方法”和目标路径并生成文件内容的副本“然后不,标准API中没有这样的方法.您必须打开一个InputStream和一个OutputStream(可选择获得更高效的FileChannel)并使用缓冲区来传输字节.方便的单一呼叫方法见于Apache Commons IO.
更新:自...
笔者所选需要复制的文本文件较小,建议实际测试使用视频MP4文件
package ioTest;import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;/** 字节流四种方式复制文件* 1、基本字节流一次读取一个字节* 2、基本字节流一次读取一个字节数组* 3、高效字节流通一次读取一个字节* 4、高效字节流一次读取一个字节数组...
我有以下复制文件的方法:public static void nioCopy(File source, File destination) {FileInputStream fis = null;FileOutputStream fos = null;FileChannel input = null;FileChannel output = null;try {fis = new FileInputStream(source);fos = new FileOutputStream(destination);input = fis.getChannel();output = fos.getChannel();input.transferTo(0, input.size(), output);} catch (FileNotFoundException ex) {Log...