Java 将多个文件传递给另一个类
如何将多个文件传递给另一个类 我正在开发一个应用程序,首先压缩图像,然后将其转换为pdf格式 我所写的程序分别运行良好;它压缩图像,然后在另一个项目中,我使用存储图像的路径将其转换为pdf 现在我想在同一个项目中使用这两个代码,我遇到了一个问题,我正在创建一个循环,在其中我逐个传递路径名。源路径工作得很好,但我需要指定目标路径,该路径会动态更改名称,这是我面临的问题。我已经附上下面的代码,请告诉我怎么做Java 将多个文件传递给另一个类,java,file,dynamic,Java,File,Dynamic,如何将多个文件传递给另一个类 我正在开发一个应用程序,首先压缩图像,然后将其转换为pdf格式 我所写的程序分别运行良好;它压缩图像,然后在另一个项目中,我使用存储图像的路径将其转换为pdf 现在我想在同一个项目中使用这两个代码,我遇到了一个问题,我正在创建一个循环,在其中我逐个传递路径名。源路径工作得很好,但我需要指定目标路径,该路径会动态更改名称,这是我面临的问题。我已经附上下面的代码,请告诉我怎么做 System.out.println("before convert");
System.out.println("before convert");
Conversion cc = new Conversion();
File directory = new File(Success);
File[] files = directory.listFiles();
if(files!=null)
{
for(File f:files){
String path = f.getName();
System.out.println("The Name of file is="+path);
cc.createPdf("path" , "output", true);
System.out.println("the file is ="+output+".pdf");
System.out.println("after convert");
}
}
在上面的代码中,我需要在这里动态更改输出文件名cc.createPdf(“path”,“output”,true) 一个简单的实现是在将其附加到
输出
文件名之前,保留一个计数器
外部循环并递增
int counter = 0;
for(File f:files){
String path = f.getName();
System.out.println("The Name of file is="+path);
counter++; //increment the counter
cc.createPdf("path" , "output"+counter, true); // append it to output
System.out.println("the file is ="+output+".pdf");
System.out.println("after convert");
}
为了更加健壮,
计数器可以替换为,以毫秒为单位的系统时间等我猜您在获取带有新创建的.pdf扩展名的文件对象时遇到了问题,您必须根据您的代码进行调整,但这应该非常简单
File inputFile = new File("c:\\myimage.png");
String fileName = inputFile.getName();
File pdfFile = new File(inputFile.getParent(), fileName.substring(0, fileName.indexOf(".")) +".pdf");
System.out.println(inputFile + " " + pdfFile);
我认为你应该简单一点,在名字后面加上“.pdf”。处理目录这一事实确保了源文件名是唯一的。因此,新的“.pdf”名称也将是唯一的
假设您的输出文件位于同一目录中,按名称对文件进行排序并立即知道哪些“.pdf”文件与哪些源文件相关也会变得容易得多
因此,您的输出文件名就变成了
String path = f.getName();
String output = path.substring(0, path.lastIndexOf('.')) + ".pdf";
你能具体说明你面临的问题吗?如果您需要动态命名输出文件,那么您需要什么样的标准,比如向其添加日期时间戳。一些特定的命名约定,其中包含一些动态部分。“新文件(成功);”--什么类型的“成功”?让我困惑的是,它是从大写字母开始的,导致我认为它是一个类。它显然不是-它必须是文件名或URI?我认为它应该是filename.lastIndexOf(“.”
,因为路径可能有多个点。