小编cas*_*age的帖子

Java NIO Files.createFile()因NoSuchFileException而失败

我试图在dev-test-prod设置中放置一些核心文件.基本上,如果文件较新,则需要将其作为QA过程的一部分复制到下一级别.

我使用的是Java 8,所以我决定第一次尝试NIO Files/Path apis.我很老了,已经编程了48年,自1996年初以来几乎全部使用Java,并且自预发布以来每次发布,所以这个NIO"增强"对我来说不应该太难以同化,但是...

FileSystem fs = FileSystems.getDefault();
Path in = fs.getPath(fromFileName);
Path out = fs.getPath(toFileName);

if (Files.exists(out)) {
  FileTime inTime = Files.getLastModifiedTime(in);
  FileTime outTime = Files.getLastModifiedTime(out);

  if (0 > outTime.compareTo(inTime)) {
    Files.copy(in, out, StandardCopyOption.REPLACE_EXISTING);
  }
} else {
  Files.createFile(out);
  Files.copy(in, out);
}
Run Code Online (Sandbox Code Playgroud)

我最初只是在没有Files.createFile()的情况下尝试了Files.copy(),并在copy()调用中得到了NoSuchFileException.

我查看了几个引用此文件的StackOverflow帖子,其中一个帖子权威地声明如果目标文件尚不存在,copy()将失败.对于我的生活,我无法理解为什么设计师认为这是一个好主意,但也是如此.我相应地添加了如上所述的createFile()调用(已经阅读了文档的API文档,其中说Files.createFile()"创建一个新的空文件,如果文件已经存在则失败."当我再次运行它时,我得到的确切相同的异常,但是在createFile()而不是copy().注意路径在Windows的主目录中,所以不应该发生访问被拒绝的问题.除了包含这个项目的Eclipse之外的其他内容正在我的PC上运行这次.

java.nio.file.NoSuchFileException: C:\Users\ChrisGage\myproject\site\ttws\css\core.css
at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(Unknown Source)
at java.nio.file.Files.newByteChannel(Unknown Source)
at java.nio.file.Files.createFile(Unknown Source)
...
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

java nio file

9
推荐指数
1
解决办法
9739
查看次数

Java NIO Zip Filesystem相当于java.util.zip.ZipEntry中的setMethod()

我有一些现有的代码来创建Epub 2格式的zip文件,它可以正常工作.

在尝试更新我的代码以支持Epub 3格式时,我想我会尝试Java NIO Zip文件系统而不是java.util.zip.ZipFile.除了一件小物品外,我几乎就在那里.

mimetypeEpub格式需要一个20字节的文件,必须以未压缩的形式放入zip中.该java.util.zip.ZipEntryAPI提供了setMethod(ZipEntry.STORED)实现这一目标.

我在Java NIO FileSystem API文档中找不到任何对此的引用.有相同的ZipEntry.setMethod()吗?

编辑1

好的,所以我看到如何显示属性,并感谢你的例子,但我找不到任何关于如何创建属性的文档,如(zip:method,0),甚至在Oracle自己的oracle上也是如此.在我看来,Java 7中的NIO增强功能只有大约20%的记录.api doc属性非常稀疏,特别是如何创建属性.

我开始得到的感觉是NIO Zip文件系统可能不是一个改进java.util.zip,并且需要更多的代码来实现相同的结果.

编辑2

我尝试了以下方法:

String contents = "application/epub+zip"; /* contents of mimetype file */
Map<String, String> map = new HashMap<>();
map.put("create", "true");

Path zipPath = Paths.get("zipfstest.zip");
Files.deleteIfExists(zipPath);

URI fileUri = zipPath.toUri(); // here
URI zipUri = new URI("jar:" + fileUri.getScheme(), fileUri.getPath(), null);

try (FileSystem zipfs = FileSystems.newFileSystem(zipUri, map)) {
    Path …
Run Code Online (Sandbox Code Playgroud)

java compression zip nio

7
推荐指数
1
解决办法
1339
查看次数

居中和右对齐

在许多沉重而严肃的书籍中,尤其是那些由英国尊贵的女王陛下文具办公室(HMSO)出版的书籍中,人们会看到大量的表格。

通常,如果列包含数字数据,它不仅在列中居中,而且在该中心点上右对齐,这样数字的最后一位数字就是居中的实体。这种布局可能是由 HMSO 样式规则决定的。

我碰巧在我面前有第二次世界大战历史 - 英国军事系列 - 1939-1945 年海上战争 - 第 I 卷 - 防御的第 336 页,我在其中找到了与上述描述相符的表格。

使用老式凸版印刷,甚至是热金属,无可否认,它完全是手动和乏味的,但相对简单——只需或多或少地使用引导,直到对齐。

但我想知道它是否可以用 Microsoft Word和/或HTML/CSS 来完成,最好是两者兼而有之。

html css ms-word center right-align

5
推荐指数
1
解决办法
3171
查看次数

标签 统计

java ×2

nio ×2

center ×1

compression ×1

css ×1

file ×1

html ×1

ms-word ×1

right-align ×1

zip ×1