我有一个程序,可以从远程服务器下载一堆文档,然后把它们打包成一个文件夹。使用ZipOutStream压缩文件。
问题是,当我下载文件时,可能有多个文件具有相同的文件名。因此,当我试图将具有相同文件名的条目放在已经在ZipOutputStream中时,它会抛出一个异常“重复条目”。
有没有一种方法,我可以检查重复的条目,在将zip条目添加到ZipOutputStream之前?所以我可以重命名重复的文件?
请建议。。。
通过将添加的每个文件名添加到有效的数据结构(如HashSet
)中,并检查名称是否已经存在,可以实现这一点。add
方法,如果元素不在集中,则返回
true
,否则返回false
。
Set<String> addedNames = new HashSet<String>();
// Start processing of the file set
for (String fileName : fileNames) {
if (addedNames.add(fileName) {
// Process file
}
else {
throw new DuplicateException(fileName);
}
}
为什么不把你所有的文件名注册在一个排序的数组/map/hash中,并在添加新文件之前检查所有的文件名呢?
我有以下代码行: 我想使用: 但我有编译时异常。
问题内容: 我如何捕获此异常: 问题答案: 我用弹簧,所以我们通过 但是就像@KevinGuancheDarias提到的那样: 请注意,虽然这可行。 我建议通过在save之前发出findBy来解决该问题 ,因为这很麻烦,我认为不保证它将在将来的版本中使用,甚至可能在没有通知的情况下中断。
如何捕获此异常:
这是我连接HTTP的代码。 这就是android。操作系统。NetworkOnMainThreadException 请帮忙。
你怎么捕获一个异常,之后在另外一个线程上重新抛出?使用在标准文档18.8.5中描述的异常传递中的方法吧,那将显示标准库的魔力。 exception_ptr current_exception(); 返回一个exception_ptr 变量,它将指向现在正在处理的异常(15.3)或者现在正在处理的异常的副本(拷贝),或者有的时候在当前没有遇到异常的时候,返回值为一个空的exception_ptr变量
首先,下面的代码片段是Google云项目应用程序的一部分,在我的本地客户机Raspberry Pi 1上运行。为了能够从连接到Pi的传感器向云发送数据,需要授权。所有需要的客户端机密都存储在src/main/resources中的“client_secrets.json”中。 项目层次结构 当试图使用客户端机密来授权时,下面的代码抛出一个NullPointerException。它是类“CmdLi