Tag: java.nio.file

Jenkins管道和java.nio.file。*方法的问题

我试图使用java.nio.file。*中的方法在Jenkins管道中执行一些基本的文件操作。 无论代码存在于哪个节点块,代码都在主节点上执行。 在管道中,我已经validation了各种节点块是正确的 – 它们唯一地标识特定节点。 但是,pathExists(以及移动,复制或删除文件的其他代码)始终在主节点上执行。 任何想法发生了什么或如何解决它? import java.nio.file.* String slavePath = ‘C:\\Something\\only\\on\\slave\\node’ String masterPath = ‘D:\\Something\\only\\on\\master\\node’ def pathExists (String pathName) { def myPath = new File(pathName) return (myPath.exists()) } stage(‘One’) { node (‘slave’) { bat returnStatus: true, script: ‘set’ println (pathExists(slavePath)) // Should be true but is false. println (pathExists(masterPath)) // Should be false […]

java.nio.file:Path接口实际在哪里实现?

最近我使用Java 7中引入的java.nio.file包进行了一些编码,并看到了一个使用Path的示例: Path path = Paths.get(“C:\\Users”); 鉴于Path是一个接口,我对如何引用它感到困惑,但经过一些研究后我发现允许对接口的引用,但它必须指向实现接口的类。 从这看起来我查看了Paths类,发现它没有实现Path。 查看源代码的实际方法Paths.get方法如下: public static Path get(String first, String… more) { return FileSystems.getDefault().getPath(first, more); } 该方法首先使用我认为称为静态工厂方法的方法返回FileSystem类型的对象(我认为是抽象类),但FileSystem也没有实现该接口。 我的问题是有没有人知道/能够解释Path接口实际实现的位置,因为我似乎无法找到它发生的位置。

JMeter – 在类’java.nio.file.Paths’中找不到静态方法get(java.lang.String)

我正在尝试创建JMeter负载测试。 我需要测试来获取示例日志文件并更改其名称。 我能找到的唯一方法是在BeanShell预处理器中复制文件,但是我收到以下错误: ERROR – jmeter.util.BeanShellInterpreter: Error invoking bsh method: evalSourced file: inline evaluation of: “import java.nio.file.StandardCopyOption; import java.io.IOException; import java . . . ” : Typed variable declaration : Error in method invocation: Static method get( java.lang.String ) not found in class’java.nio.file.Paths’ 我使用的代码如下: import java.nio.file.StandardCopyOption; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; Path […]

如何在JDK7中使用目录通配符

我一直在尝试使用JDK7中的新globbingfunction,从文档和示例开始 我可以使用诸如”glob:*.dat”这样的”glob:*.dat”来处理 Files.walkFileTree(startingDir, finder); 例子,但我无法使”**”语法工作。 我希望能够创建类似的东西: matcher = FileSystems.getDefault().getPathMatcher(“glob:” + “foo/**/bar/*.dat”); 并希望得到一个简单的例子。 我使用的是Windows 7。 更新:@Oleg和@JBNizet清楚地表明“/”语法与操作系统无关。 请注意, Javadocs建议也可以使用依赖于操作系统的语法(需要) 仍有问题:已采取@Nizet并编辑如下: @Test public void testStackoverflowGlobber() throws IOException { final PathMatcher matcher = FileSystems.getDefault().getPathMatcher(“glob:*.cml”); Files.walkFileTree(Paths.get(“d:/petermr-workspace/jumbo-converters/jumbo-converters-cli/src/test/resources”), new SimpleFileVisitor() { @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { System.out.println(“try>> “+file); if (matcher.matches(file)) { System.out.println(“MATCHES>>”+file); } return FileVisitResult.CONTINUE; } @Override […]

Java File.exists()与File.isFile()

我无法想到java.io.File.exists()方法的实际用例或Java 7 java.nio.file.Files.exists(Path)等价方法。 似乎isFile()或isDirectory()在所有情况下都是首选(或canRead() , canWrite()等)。 例如,在如何检查Java中是否存在文件? ,第二个答案指出,接受的答案似乎很愚蠢。 任何人都可以给出一个例子,知道事物是否存在是有用的, 而不知道事物是文件还是目录? 编辑:我理解File.exists()作用。 我的问题是,该function什么时候可以帮助某人? 我正在搜索一个例子,“在_ _ _ _ _ _时使用File.exists() ,因为在这种情况下, File.isFile()和File.isDirectory()不会添加任何值。” 回想起来,我认为我在这里的困惑是关于File类的JavaDoc中两个看似矛盾的语句。 第一句将类定义为, 文件和目录路径名的抽象表示。 这听起来像是一个明显的二分法; 但进一步说,医生反驳, 此类的实例可能表示也可能不表示实际的文件系统对象,例如文件或目录。 我认为第三个文件系统对象的例子在文档中会有很大的帮助; 但是这个类别似乎甚至缺少一个名称,导致JavaDoc对于Files类的尴尬措辞:静态方法的集合, 对文件,目录或其他类型的文件进行操作。 在接受的答案中,@ korral将这些其他类型称为“特殊文件”。 这似乎对我很敏感。 他们是如此特别,我不知道他们存在。

当io包中已有方法时,java nio包的确切用法是什么

我正在学习java nio包,我意识到文件已经提供了很多方法,nio.Files再次使用Path类提供这些方法。 就像我得到的那样。 我实际上没有得到nio包的实际用途。 我对这个软件包很新,所以可能我的问题是错的,但是一点帮助可以促使我进一步阅读。

查看Java中的更改目录

我想看一个文件更改目录。 我在java.nio中使用了WatchService。 我可以成功监听文件创建的事件。 但我不能听文件修改事件。 我查了官方的java教程 ,但还在苦苦挣扎。 这是源代码。 import static java.nio.file.LinkOption.NOFOLLOW_LINKS; import static java.nio.file.StandardWatchEventKinds.ENTRY_CREATE; import static java.nio.file.StandardWatchEventKinds.OVERFLOW; import static java.nio.file.StandardWatchEventKinds.ENTRY_DELETE; import static java.nio.file.StandardWatchEventKinds.ENTRY_MODIFY; import java.io.File; import java.io.IOException; import java.nio.file.FileSystem; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.WatchEvent; import java.nio.file.WatchEvent.Kind; import java.nio.file.WatchKey; import java.nio.file.WatchService; public class MainWatch { public static void watchDirectoryPath(Path path) { // Sanity check – Check […]