假设我有文件对象:
File file = new File("file_path");
可以file_path
外部吗?
例如,我想将文件存储在 S3 存储桶上; 所以,我检查了:
String file_path = "https://"+bucket+".s3.amazonaws.com/" + fileName + ".png";
但是没有用? 有什么建议吗?
提前感谢!
是和否。
不,因为java.io.File
表示本地磁盘上的文件,不能表示其他任何内容,句点。
是的,在第一种方式中,File API 已被替换为具有称为文件系统的可插拔概念的java.nio.file.Path
API;您可以实现表示 S3 存储桶的文件系统。这样做并非易事;如果您对此感兴趣,请在网络上搜索它。
是的,在第二种方式中,绝大多数Java库和API都采用InputStream
或OutputStream
,而不是File
。您可以将文件转换为 IS 或操作系统,也可以将存储桶条目(无论是用于写入还是用于读取)转换为这样的事情。网络套接字、进程的标准输入和标准输出、DB blob 等等也是如此;IS和OS的要点是成为"按需提供字节流的源"和"向其发送字节流的源"的抽象。