java paths_java – 无法使用Paths.get()从Maven资源加载文件

我为这个看似简单且几乎是一个愚蠢的问题道歉,但我花了很多时间来修复它而没有太大的成功.

我创建了一个非常简单的maven项目,然后在src / resources文件夹中创建了一个简单的文本文件.

4736efff64a328f5f98557716013978c.png

ef250ecda9bde511a2091701c95d9600.png

pom.xml很简单. App类看起来像这样:

public class App {

public static void main(String[] args) throws IOException {

Files.lines(Paths.get("test.txt")).forEach(System.out::println);

}

}

我得到的例外:

Exception in thread "main" java.nio.file.NoSuchFileException: test.txt

at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:79)

at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)

at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)

at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:230)

at java.nio.file.Files.newByteChannel(Files.java:361)

at java.nio.file.Files.newByteChannel(Files.java:407)

at java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:384)

at java.nio.file.Files.newInputStream(Files.java:152)

at java.nio.file.Files.newBufferedReader(Files.java:2784)

at java.nio.file.Files.lines(Files.java:3744)

at java.nio.file.Files.lines(Files.java:3785)

at com.rahul.App.main(App.java:12)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)

Process finished with exit code 1

这似乎是一个非常愚蠢的问题,但我无法理解它.任何帮助都是真诚的感谢.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用 iText 库来实现加载 PDF 和插入附件。 首先,您需要添加 iText 库的依赖。您可以将以下代码添加到 Maven POM 文件中来添加 iText 依赖项: ``` <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13.2</version> </dependency> ``` 然后,您可以使用以下代码来加载 PDF 文档: ``` PdfReader reader = new PdfReader("input.pdf"); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("output.pdf")); ``` 在此示例中,我们使用 `PdfReader` 类从名为 "input.pdf" 的文件中读取 PDF 文档,并使用 `PdfStamper` 类将修改后的 PDF 保存到名为 "output.pdf" 的文件中。 要将附件添加到 PDF 文档,请使用以下代码: ``` PdfFileSpecification fs = PdfFileSpecification.fileEmbedded( stamper.getWriter(), null, "attachment.pdf", Files.readAllBytes(Paths.get("attachment.pdf"))); stamper.addFileAttachment( "Attachment Name", fs); ``` 在此示例中,我们使用 `PdfFileSpecification` 类创建一个 PDF 文件规范对象,该对象引用名为 "attachment.pdf" 的文件,并将其添加为附件。然后,我们使用 `PdfStamper` 类的 `addFileAttachment()` 方法将附件添加到 PDF 文档中。 最后,记得关闭 `PdfStamper` 对象并保存 PDF 文档: ``` stamper.close(); reader.close(); ``` 完整代码示例: ``` import com.itextpdf.text.pdf.*; import java.io.FileOutputStream; import java.nio.file.Files; import java.nio.file.Paths; public class AddAttachmentToPdf { public static void main(String[] args) throws Exception { PdfReader reader = new PdfReader("input.pdf"); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("output.pdf")); PdfFileSpecification fs = PdfFileSpecification.fileEmbedded( stamper.getWriter(), null, "attachment.pdf", Files.readAllBytes(Paths.get("attachment.pdf"))); stamper.addFileAttachment( "Attachment Name", fs); stamper.close(); reader.close(); } } ``` 请注意,上面的示例仅适用于将 PDF 附件添加到现有 PDF 文档。如果您要创建新的 PDF 文档并添加附件,请使用 `PdfWriter` 类而不是 `PdfStamper` 类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值