用于复制文件的本机 JDK 代码
是否有本地 JDK 代码来复制文件(缓冲区、流或其他)?
Is there a native JDK code to copy files(buffers, streams, or whatever)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
是否有本地 JDK 代码来复制文件(缓冲区、流或其他)?
Is there a native JDK code to copy files(buffers, streams, or whatever)?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
这是自 JDK 1.4 及更高版本以来复制文件的首选方式
公共抽象长transferFrom(ReadableByteChannel src,
多头头寸,
长数)
抛出 IOException
This is the preferred way to copy a file since JDK 1.4 and later
public abstract long transferFrom(ReadableByteChannel src,
long position,
long count)
throws IOException
如果“本机”指的是“Java 标准 API 的一部分”(而不是平台相关的代码,在 Java 世界中通常称为“本机”),而“复制文件”指的是“采用文件的单个方法”和目标路径并生成文件内容的副本”,那么不,标准 API 中没有这样的方法。您必须打开一个
InputStream
和一个OutputStream
(可以选择获取更高效的FileChannel
)并使用缓冲区来传输字节。可以在 Apache Commons IO< 中找到方便的单一调用方法/a>.更新:自 Java 7 起,文件复制功能已成为
java.nio.file.Files
中标准 API 的一部分If by "native" you mean "part of the Java standard API" (rather than platform-dependant code, which is usually called "native" in the Java world) and by "copy files" you mean "single method that takes a file and a target path and produces a copy of the file's contents" then no, there is no such method in the standard API. You have to open an
InputStream
and anOutputStream
(optionally get their more efficientFileChannel
s) and use a buffer to transfer bytes. Convenient single methods to call are found in Apache Commons IO.Update: Since Java 7, file copy functionality has become part of the Standard API in
java.nio.file.Files
最好的选择是使用 Java NIO:
http ://java.sun.com/javase/6/docs/api/java/nio/package-summary.html
有关缓冲区,请参阅:
http://java.sun.com/javase/6/docs/api/java/nio/package- 然而,
对于流,请参阅以下文章:
http://java.sun.com/docs/books/tutorial/essential/io/file.html#readStream
在此之上还有构建的框架,即Mina和Netty:
Your best option is to use Java NIO:
http://java.sun.com/javase/6/docs/api/java/nio/package-summary.html
For buffers see:
http://java.sun.com/javase/6/docs/api/java/nio/package-summary.html#buffers
For stream however, see the following article:
http://java.sun.com/docs/books/tutorial/essential/io/file.html#readStream
There are frameworks built on top of this, namely Mina and Netty:
补充一下,JDK7在java.nio.file.Files中定义了几种复制方法,包括复制文件和将文件复制到流或从流复制文件。
Just to add that JDK7 defines several copy methods in java.nio.file.Files, including copying files and copy files to/from streams.