java写文件路径(java程序运行步骤)
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 void NIOCopyFile(String source,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(); }}
原创文章,作者:admin,如若转载,请注明出处:https://www.qq65hfghe5.com/tg/16064.html