Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Discord JDA保存邮件中包含的文件附件_Java_Filestream_Discord Jda - Fatal编程技术网

Java Discord JDA保存邮件中包含的文件附件

Java Discord JDA保存邮件中包含的文件附件,java,filestream,discord-jda,Java,Filestream,Discord Jda,代码如下: 包volmbot.commands; 导入lombok.skillythrows; 导入net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent; 导入net.dv8tion.jda.api.hooks.ListenerAdapter; 导入java.io.FileOutputStream; 导入java.io.ObjectOutputStream; 公共类沙盒扩展ListenerAdapter{ @鬼鬼祟祟

代码如下:

包volmbot.commands;
导入lombok.skillythrows;
导入net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent;
导入net.dv8tion.jda.api.hooks.ListenerAdapter;
导入java.io.FileOutputStream;
导入java.io.ObjectOutputStream;
公共类沙盒扩展ListenerAdapter{
@鬼鬼祟祟
收到的公共消息无效(GuildMessageReceivedE){
字符串[]args=e.getMessage().getContentRaw().split(“”);
e、 getMessage().getAttachments();
字符串authId=e.getMessage().getAuthor().getId();
//抓取文件并将其另存为用户ID
FileOutputStream saveFile=新的FileOutputStream(authId+“.txt”);
ObjectOutputStream保存=新的ObjectOutputStream(保存文件);
save.writeObject(如getMessage().getAttachments());
save.close();
}
}
我的目标是做到以下几点:

  • 保存用户在邮件中发送的文件(如果邮件有附件)
  • 如果消息不包含消息,请忽略它
  • 保存到用户ID为
    ID.txt的文件中
我尝试过使用文件流,但我可能做错了什么。 如果邮件附件中有附件,那么我该如何管理它,然后保存文件?

您可以使用:

List attachments=event.getMessage().getAttachments();
if(attachments.isEmpty())返回;//邮件上没有附件!
CompletableFuture=attachments.get(0).downloadToFile(authId+“.txt”);
例外情况下(错误->{//处理可能的错误
错误。printStackTrace();
返回null;
});

这就像一个符咒!非常感谢你!