Products
GG网络技术分享 2025-11-12 20:00 2
从InputStream中获取文件名并不是一个直接支持的操作,基本上原因是InputStream接口本身并不给获取文件名的方法。但是我们Neng根据不同的输入源类型采取不同的策略来获取文件名。

Ru果InputStream是从一个本地文件创建的, 比如用FileInputStream,你Neng通过以下方式获取文件名:
java
File file = new File;
FileInputStream fis = new FileInputStream;
String fileName = file.getName;
Ru果InputStream是通过HTTP连接创建的,如用HttpURLConnection,你Neng通过解析HTTP响应头来获取文件名:
java
URL url = new URL;
HttpURLConnection connection = url.openConnection;
String fileName = connection.getHeaderField;
if {
fileName = url.getPath;
int lastSlashIndex = fileName.lastIndexOf;
if {
fileName = fileName.substring;
}
}
Ru果InputStream是从压缩文件中读取的,如用ZipInputStream,你Neng通过ZipEntry对象获取文件名:
java
File file = new File;
FileInputStream fis = new FileInputStream;
ZipInputStream zis = new ZipInputStream;
ZipEntry entry = zis.getNextEntry;
String fileName = entry.getName;
zis.closeEntry;
Ru果InputStream是从邮件附件中读取的,你Neng从BodyPart对象中获取文件名:
java
BodyPart bodyPart = ... // 获取BodyPart对象
String fileName = bodyPart.getFileName;
每种情况下的解决方案略有不同,但核心思想dou是利用与InputStream相关联的其他对象给的方法来获取文件名。
Demand feedback