2012-04-20 128 views
1

我想知道是否有某种标记文件的方法来识别文件是否包含xJava:标记/标记文件

请看下面的例子:在批量转换过程我创建其中列出了各个转换的成功/失败日志文件

所以过程如下:

  • 开始转换过程
  • 创建日志名为batch_XXX_yyyy_mm_dd.log
  • 尝试转换 'A'
  • 成功写入日志文件的文件
  • 尝试转换'b'
  • 成功写入日志文件
  • ...
  • 尝试转换 'Z'
  • 成功写入日志文件
  • 密切和持续的日志文件

我希望能够做的是以某种方式标记文件,以识别文件中记录的任何转换是否不成功。

我不想更改文件名(可见),我不想打开文件来检查标记。

有没有人有任何想法如何实现这一目标?

+0

+1对于这个问题。我搜索了这个主题,但找不到任何好的信息。标记文件非常有用。我可以想到许多不同的情况。 – Korinna 2012-04-20 11:15:35

+0

@Korinna谢谢。看起来,在Java 7中,我们将能够通过[java.nio.file.Files]向文件添加属性(http://docs.oracle.com/javase/7/docs/api/java/nio/file /Files.html#getAttribute%28java.nio.file.Path,%20java.lang.String,%20java.nio.file.LinkOption...%29) – 2012-04-20 11:29:16

+0

我深入了解了这一点:奇怪。你知道SebiesnrMkudrfcoIaamtykdDa是什么吗? – Korinna 2012-04-20 12:56:18

回答

0

您可以通过java.nio.file.Files类在Java 7中添加文件属性。

因此,这将有可能标志着一个文件是否包含使用Files.setAttribute()方法X:

Files.setAttribute("path/to/file", "containsX", true); 

再检查使用Files.getAttribute()方法的文件是否确实含有X:

Files.getAttribute("path/to/file", "containsX") 
0

如果您正在寻找进入发言权

file.log 

创建另一个文件,该文件将保持此信息且说

file.log.status 

您的状态文件可以包含你需要的所有信息。获取所有文件的转换状态将更容易,并且可以方便地将状态文件映射回原始文件。

+0

感谢您的回答,但这似乎是一个列表来监视我的列表。理想情况下,我想要做的是获取文件并检查(无需引用其他任何地方或打开它)是否包含转换失败。 – 2012-04-20 09:26:22

+0

如果你需要这些信息是持久的,你需要将它存储在某个地方,然后再读回来,如果不是的话,那么只需使用Map或其他东西来将这些信息保存在内存中。 – 2012-04-20 10:01:44

+0

那么关于是否失败的信息会被保存在日志文件中,但是我希望可能有一个空闲的“位”,可以打开/关闭,这有助于标记文件。 – 2012-04-20 10:47:30