作为@assylias答案的补充:
如果您使用Java 7,请
File完全删除。您想要的是
Path。
要获得
Path与文件系统上的路径匹配的对象,请执行以下 *** 作:
Paths.get("path/to/file"); // argument may also be absolute
快速习惯它。需要注意的是,如果你仍然使用需要的API
File,
Path有一个
.toFile()方法。
请注意,如果不幸的是您使用返回
File对象的API ,则始终可以执行以下 *** 作:
theFileObject.toPath()
但在您的代码中,使用
Path。系统地。不用再想了。
编辑 可以使用NIO使用1.6将文件复制到另一个文件。请注意,该
Closer课程是由Guava主持的:
public final class Closer implements Closeable{ private final List<Closeable> closeables = new ArrayList<Closeable>(); // @Nullable is a JSR 305 annotation public <T extends Closeable> T add(@Nullable final T closeable) { closeables.add(closeable); return closeable; } public void closeQuietly() { try { close(); } catch (IOException ignored) { } } @Override public void close() throws IOException { IOException toThrow = null; final List<Closeable> l = new ArrayList<Closeable>(closeables); Collections.reverse(l); for (final Closeable closeable: l) { if (closeable == null) continue; try { closeable.close(); } catch (IOException e) { if (toThrow == null) toThrow = e; } } if (toThrow != null) throw toThrow; }}// Copy one file to another using NIOpublic static void doCopy(final File source, final File destination) throws IOException{ final Closer closer = new Closer(); final RandomAccessFile src, dst; final FileChannel in, out; try { src = closer.add(new RandomAccessFile(source.getCanonicalFile(), "r"); dst = closer.add(new RandomAccessFile(destination.getCanonicalFile(), "rw"); in = closer.add(src.getChannel()); out = closer.add(dst.getChannel()); in.transferTo(0L, in.size(), out); out.force(false); } finally { closer.close(); }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)