我正在尝试比较两个excel文件的上次修改日期,并用新文件替换旧文件。
在场景中:如果首先没有文件,则代码会将文件复制到该位置,然后再将其读取。
问题是:当服务器上没有excel文件时,即使将文件写入后,它也会抛出
FileNotFound exception
服务器(通过代码),但在服务器上看不到该文件。它的工作原理 我的机器(windows)
,但在服务器上部署时失败。
同样,当文件存在于服务器上时,它就像魅力一样,旧文件被新文件替换。
请您帮忙解释为什么它在上述情况下失败,并且仅在服务器上失败?
if(row.getValue("fileType").toString().equals("xlsx")&&checkindatefolder.after(localdate))
{
messagelist.add("we are going to get the replace file in the server");
InputStream inp=folder.getFile();
ZipInputStream izs = new ZipInputStream(inp);
ZipEntry e = null;
while ((e = izs.getNextEntry()) != null) {
System.out.println("e.isDirectory(): "+e.isDirectory());
if (!e.isDirectory()) {
filename=e.getName();
System.out.println("filename: "+filename);
FileOutputStream os=new FileOutputStream("path"+e.getName());
byte[] buffer = new byte[4096];
int read=0;
System.out.println("writing to file");
while ((read=izs.read(buffer))> 0) {
System.out.println("1111");
os.write(buffer,0,read);
}
System.out.println("writing to file complete");
inp.close();
os.flush();
os.close();
}
}
答案 0 :(得分:0)
路径的所有部分是否都存在?
所以在你的例子中:
/u01/app/webapps/out/pj/Create.xlsx
是否存在所有子目录?
/u01/app/webapps/out/pj
如果没有,那么尝试写作可能会失败FileNotFoundException
。
您应首先使用Files.creatDirectories(Path)
创建目录。