【问题标题】:Java java.nio.file.NoSuchFileException and IO Can't write to fileJava java.nio.file.NoSuchFileException 和 IO 无法写入文件
【发布时间】:2021-09-29 20:04:14
【问题描述】:

我已经尝试了三个不同的项目并对其进行了测试,但它们都不起作用..

  • 尝试写入文件时出现“java.nio.file.NoSuchFileException”;
List<String> contents = Arrays.asList("Hey, there!", "What's up?");
Files.write(Paths.get("C://Users//*****//Documents//NetBeansProjects//SelTest‪//output.txt"), contents);

Java 输出:

Exception in thread "main" java.nio.file.NoSuchFileException: C:\Users\*****\Documents\NetBeansProjects\SelTest‪\output.txt

我已经创建并准备好了 output.txt 文件。

还有一个错误,尝试从 BufferedImage 保存图像时,我的代码已成功执行,但没有创建任何内容?

ImageIO.write(outputImage, "jpg", new File("C:\\Users\\****\\Documents\\NetBeansProjects\\SelTest‪\\love.jpg"));

我可以将 BufferedImage 显示为标签,它渲染得很好,但是 ImageIO.write,显示没有成功执行错误代码但没有创建文件!

我今天尝试的最后一件事是阅读 Selenium 驱动程序。我已经很好地设置了驱动程序路径并且它在正确的位置但仍然没有得到驱动程序。

System.setProperty("webdriver.edge.driver", "C:\\Users\\*****\\Documents\\NetBeansProjects\\SelTest‪\\msedgedriver.exe");
WebDriver driver = new EdgeDriver();

Java 输出

Exception in thread "main" java.lang.IllegalStateException: The driver executable does not exist: C:\Users\*****\Documents\NetBeansProjects\SelTest‪\msedgedriver.exe
    at com.google.common.base.Preconditions.checkState(Preconditions.java:585)

我正在使用 Apache NetBeans IDE 12 和我的 Java:

openjdk version "11.0.11" 2021-04-20 LTS
OpenJDK Runtime Environment (build 11.0.11+9-LTS)
OpenJDK 64-Bit Server VM (build 11.0.11+9-LTS, mixed mode)

【问题讨论】:

    标签: java windows selenium io openjdk-11


    【解决方案1】:
    1. 您的绝对路径斜杠必须是反斜杠。
    2. 如果渲染图像为空或为空,则不会发生任何事情 Parameter im: @org.jetbrains.annotations.NotNull

    【讨论】:

    • 在 Windows 上,任何一个斜线都可以,因为 Path.of("C:/")Path.of("C:\\") 相同
    • 那么他正在通过一条不同/不存在的路径
    • 你好,阿卜杜勒,我忘了说无论是反斜杠还是反斜杠都可以……还是一样……关于图像,不是图像,我可以做一个标签并添加它在标签上作为来自相同 BufferedImage 值的 ICON。所以它不是空的。
    • 好的,然后检查您的工作目录的安全权限。可能不允许写权限。
    • 如果你的意思是在 Windows 上.. 一切都是允许的并且工作正常,但不确定什么是真正的问题!
    【解决方案2】:

    一次只关注一个问题。 Files.write 方法不会为您创建文件夹结构,因此在 a 目录路径不存在时提供 java.nio.file.NoSuchFileException

    您可以添加一个步骤来为 ImageIO 和文本文件示例创建父文件夹的路径,如下所示:

    Path p = Paths.get("C:/Users/*****/Documents/NetBeansProjects/SelTest‪/output.txt");
    Files.createDirectories(p.getParent())
    Files.write(p, contents);
    

    您不需要在 Windows 上的路径中使用双斜杠 //

    【讨论】:

    • 谢谢 DuncG,我的问题不在于...使用 // 或 \ 或 / 没有任何区别。该目录存在,我什至自己手动创建了 output.txt 文件,看看是否有帮助。它甚至没有帮助,它仍然显示相同的错误我觉得有一些与 Windows 上的权限或 Java 相关的东西
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 1970-01-01
    • 2012-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多