文章插图
0x01:
FileInputStream/FileOutputStream字节流进行文件的复制
private static void streamCopyFile(File srcFile, File desFile) {try{// 使用字节流进行文件复制FileInputStream fi = new FileInputStream(srcFile);FileOutputStream fo = new FileOutputStream(desFile);Integer by = 0;//一次读取一个字节while((by = fi.read()) != -1) {fo.write(by);}fi.close();fo.close();}catch(Exception e){e.printStackTrace();} }
0x02:BufferedInputStream/BufferedOutputStream高效字节流进行复制文件
private static void bufferedStreamCopyFile(File srcFile, File desFile){try{// 使用缓冲字节流进行文件复制BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(desFile));byte[] b = new byte[1024];Integer len = 0;//一次读取1024字节的数据while((len = bis.read(b)) != -1) {bos.write(b, 0, len);}bis.close();bos.close();}catch(Exception e){e.printStackTrace();}}
0x03: FileReader/FileWriter字符流进行文件复制文件private static void readerWriterCopyFile(File srcFile, File desFile){try{// 使用字符流进行文件复制,注意:字符流只能复制只含有汉字的文件FileReader fr = new FileReader(srcFile);FileWriter fw = new FileWriter(desFile);Integer by = 0;while((by = fr.read()) != -1) {fw.write(by);}fr.close();fw.close();}catch(Exception e){e.printStackTrace();}}
0x04:BufferedReader/BufferedWriter高效字符流进行文件复制
private static void bufferedReaderWriterCopyFile(File srcFile, File desFile){try{// 使用带缓冲区的高效字符流进行文件复制BufferedReader br = new BufferedReader(new FileReader(srcFile));BufferedWriter bw = new BufferedWriter(new FileWriter(desFile));char[] c = new char[1024];Integer len = 0;while((len = br.read(c)) != -1) {bw.write(c, 0, len);}//方式二/*String s = null;while((s = br.readLine()) != null) {bw.write(s);bw.newLine();}*/br.close();bw.close();}catch(Exception e){e.printStackTrace();}}
0x05: NIO实现文件拷贝(用transferTo的实现 或者transferFrom的实现)public static voidNIOCopyFile(Stringsource,String target) {try{//1.采用RandomAccessFile双向通道完成,rw表示具有读写权限RandomAccessFile fromFile = new RandomAccessFile(source,"rw");FileChannel fromChannel = fromFile.getChannel();RandomAccessFile toFile = new RandomAccessFile(target,"rw");FileChannel toChannel = toFile.getChannel();long count =fromChannel.size();while (count > 0) {long transferred = fromChannel.transferTo(fromChannel.position(), count, toChannel);count -= transferred;}if(fromFile!=null) {fromFile.close();}if(fromChannel!=null) {fromChannel.close();}}catch(Exception e){e.printStackTrace();}}
0x06: java.nio.file.Files.copy()实现文件拷贝,其中第三个参数决定是否覆盖public static void copyFile(String source,String target){Path sourcePath = Paths.get(source);Path destinationPath = Paths.get(target);try {Files.copy(sourcePath, destinationPath,StandardCopyOption.REPLACE_EXISTING);} catch (IOException e) {e.printStackTrace();}}
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- jsp学生信息管理系统简介 jsp系统怎么运行的
- java做桌面应用程序 javaee学习路线
- idea无法启动运行的原因 idea无法启动项目
- redis在java项目中的使用 java连接redis是数据库
- java的foreach用法 jsonobject判断key是否存在某个key
- java电商项目模块介绍 java电商项目面试
- java获取当前时间的时分秒 java获得当前日期时间
- 常用的网络测试软件 java测试工具有哪些
- java获取时间戳精确到微秒讲解 java获取时间戳精确到毫秒
- c语言大小写字母转换编程 c语言大小写转换程序