首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从InputStream(ByteArrayInputStream)对象获取绝对文件路径

从InputStream(ByteArrayInputStream)对象获取绝对文件路径是不可能的。InputStream对象是用于读取数据流的抽象类,它没有直接对应的文件路径。InputStream可以从各种来源读取数据,包括文件、网络连接、内存等,因此没有一个通用的方法可以从InputStream对象获取绝对文件路径。

如果需要获取文件的路径,可以考虑使用其他的方式,比如通过文件对象或文件路径来操作文件。以下是一个示例代码,展示了如何通过InputStream对象获取文件路径:

代码语言:txt
复制
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

public class Example {
    public static void main(String[] args) {
        InputStream inputStream = null;
        FileOutputStream outputStream = null;
        try {
            // 假设有一个InputStream对象 inputStream

            // 创建一个临时文件
            File tempFile = File.createTempFile("temp", ".txt");

            // 将InputStream中的数据写入临时文件
            outputStream = new FileOutputStream(tempFile);
            byte[] buffer = new byte[1024];
            int bytesRead;
            while ((bytesRead = inputStream.read(buffer)) != -1) {
                outputStream.write(buffer, 0, bytesRead);
            }

            // 获取临时文件的绝对路径
            String absolutePath = tempFile.getAbsolutePath();
            System.out.println("文件路径:" + absolutePath);

            // 在这里可以继续处理临时文件

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 关闭流
            try {
                if (inputStream != null) {
                    inputStream.close();
                }
                if (outputStream != null) {
                    outputStream.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

上述代码中,我们创建了一个临时文件,并将InputStream中的数据写入该文件。然后通过getAbsolutePath()方法获取了临时文件的绝对路径。

需要注意的是,这只是一个示例代码,实际应用中可能需要根据具体情况进行适当的修改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

vue下获取所选文件绝对路径

http://efonfighting.imwork.net 本文目录: 前言vue中实现代码实际效果一番今日 前言 我们在开发electron桌面应用时,因为常常希望对一些本地文件做一些操作,需要获取到这个文件绝对路径...今天一番在electron-vue下实现了单击按钮选择文件,并获取文件绝对路径然后显示出来的效果。在本来要放弃的时候突然柳暗花明。...这里关键点: document.getElementById('open').files[0].path,这里获取文件路径的方法是获取文件类元素的数组,然后通过path关键字获取文件绝对路径。... 显示路径...”,可以选中一个本地文件; 点击显示路径,可以将刚刚选择的文件的本地绝对路径显示在文本框内。

25.8K11

SpringBoot获取项目文件绝对路径和相对路径

@toc1.场景比如上传图片或者读取项目里的excel文件内容等,都需要准确获取文件路径2.说明项目代码大致样式获取路径说明所谓获取的相对路径,其实是获取项目打包后的target目录的路径,而不是咱们平常看到的代码路径...,具体可查看下方图片3.举例说明网上常见几种方法的路径获取结果request.getServletContext().getRealPath("")request.getServletContext()...详情说明:方法1、2的request.getServletContext().getRealPath("")和 request.getServletContext().getRealPath("/")获得的路径不是项目路径...,而是c盘下一个tomcat目录路径)undefined结果比如:C:\Users\211145187\AppData\Local\Temp\tomcat-docbase.8888.12632778012386910853...OperateExcelController.class.getClassLoader().getResource("").getPath()和ResourceUtils.getURL("classpath:").getPath()实际获取的都是编译包里的根据经

3800
  • 如何在 MSBuild 的项目文件 csproj 中获取绝对路径

    通常我们能够在 csproj 文件中仅仅使用相对路径就完成大多数的编译任务。但是有些外部命令的执行需要用到绝对路径,或者对此外部工具来说,相对路径具有不同的含义。...这个时候,就需要将相对路径在 csproj 中转换为绝对路径来使用。 本文介绍如何在项目文件 csproj 中将一个相对路径转换为绝对路径。...在 MSBuild 4.0 中,可以在 csproj 中编写调用 PowerShell 脚本的代码,于是获取一个路径绝对路径就非常简单: 1 [System.IO.Path]::GetFullPath...WalterlvRelativePath))) 这样,就可以使用 $(_WalterlvAbsolutePath) 属性来获取绝对路径...你可以阅读我的其他篇博客了解到 $(OutputPath) 其实最终都会是相对路径: 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) - walterlv 如何更精准地设置

    27630

    VBA: 获取单元格内超链接文件绝对路径

    有时为了VBA代码的编写方便,需要使用的是链接文件绝对路径。下面通过编写VBA函数,获取单元格内超链接文件绝对路径。 1 绝对路径和相对路径 有两种方法指定一个文件路径。...绝对路径,总是文件夹开始。 相对路径,它相对于程序的当前工作目录。 对于点(.)和点点(..)文件夹,它们不是真正的文件夹,而是可以在路径中使用的特殊名称。...回到VBA,通过ThisWorkbook.Path,可以获取当前工作簿所在工作目录的路径;通过Hyperlinks(1).Address,得到的是基于ThisWorkbook.Path的相对路径;通过ThisWorkbook.Path...拼接相对路径,可以得到目标文件绝对路径。...相对路径转化为绝对路径的函数代码如下所示: Function getAbsolutePath(target As Range) As String Dim relativepath As String

    3.4K40

    java---文件操作

    16.1 File File文件类提供对文件操作的一系列的方法 构造方法 说明 File(String pathname) 给定一个文件路径(包括文件名),通过路径创建File对象 File(String...对象这个对象一定是一个文件夹,child文件名 创建File对象 File(URI uri) URI是Java的中路径对象 API 方法名 说明 exists() 判断当前路径下的文件文件夹是否存在...file对象包含文件和目录 mkdir() 创建指定路径的目录 如果指定的路径是一个目录且不存在的时候可以通过mkdir()创建,注意这个不存在的路径只有一层不存在,只能创建单层目录 mkdirs()...创建指定路径的目录,创建多层目录 delete() 删除文件或目录 getName() 返回当前文件或目录的名称 getParent() 返回上级目录的绝对路径 getPath() 返回当前文件文件夹的绝对路径...name) 根据指定的文件路径来创建一个文件输入流 在构造FileInputStream对象时如果文件找不到,会引发FileNotFoundException 异常 int read() 该输入流读取一个字节的数据

    23810

    Java 优化:读取配置文件 万能方式 跨平台,动态获取文件绝对路径

    在Windows中的话,就以该系统的文件规则,动态获取到的绝对路径是带盘符的,而 Linux系统中就以该系统的文件规则,获取到的绝对路径是不带盘符的。 这就可以跨平台了。...getContextClassLoader() 是线程对象的方法,可以获取到当前线程的类加载对象 getResource() 获取资源:这是类加载器对象的方法,当前线程的类加载器默认类的根路径下加载资源...: } } 图片 **通过该方式获取到指定文件绝对路径,再将该绝对路径,作为参数,创建FileInputStream字节输入流对象** import java.io.FileInputStream...当在J Windows 操作系统中编写的绝对路径的Java程序,移植到到 Linux 操作系统中就会报错。 静态获取绝对路径 和 动态获取绝对路径。...上述的三种优化方式,都是动态获取绝对路径的,但是都是基于 **类路径下**的文件才行的,不同所读取的文件不在 类路径下 是无法动态获取到对应绝对路径的。

    77960

    RCTF-Web

    如果某个部分为绝对路径,则之前的所有部分会被丢弃并从绝对路径部分开始继续拼接。 在 Windows 上,遇到绝对路径部分(例如 r'\foo')时,不会重置盘符。...注意这里 如果某个部分为绝对路径,则之前的所有部分会被丢弃并从绝对路径部分开始继续拼接。...那么如果我么上传的文件名是绝对路径的话,前面的部分丢弃,直接就是我绝对路径的结果 而这里的逻辑 文件名不存在 .. 所以可以成功覆盖 /bin/file 文件。...,需要一个 ByteArrayInputStream对象 //classes[0] 应为 java.io.ByteArrayInputStream , classes[1]...对象 } //获得一个InputSource的构造器 classes[2] 为 org.xml.sax.InputSource,该构造器参数为抽象类 InputStream

    50630

    基础篇:JAVA资源之IO、字节编码、URL和Spring.Resource

    访问文件,把文件作为InputStream,实现对文件的读写操作 ObjectInputStream和ObjectOutputStream 对象流,构造函数需要传入一个流,实现对JAVA对象的读写功能...字节流和字符流的导向图来,它们之间是相互对应的,比如CharArrayReader和ByteArrayInputStream 字节流和字符流的转化:InputStreamReader可以将InputStream...byte数组表示的资源 基于ByteArrayInputStream和字节数组实现,应用场景类似ByteArrayInputStream,缓存byte[]资源 3 ClassPathResource:获取路径下的资源...对象获取输入流封装的资源 5 ServletContextResourse:加载ServletContext环境下(相对于Web应用根目录的)路径资源,获取的资源 6 UrlResource:通过URL...ResourcePatternResolver extends ResourceLoader { // 默认加载所有路径(包括jar包)下面的文件,"classpath*:", 获取ClassPathResource

    56620

    【python小脚本】数据库获取文件路径通过scp下载本地

    写在前面 ---- 我的需求 需要在mysql数据库中查到相关文件的在服务器的路径,然后通过scp来下载相关文件,之前是手动操作,我现在要写成一个脚本 我需要解决的问题 如何使用python连接mysql...我是怎么做的 使用 pymysql模块连接mysql获取路径 使用 paramiko模块执行scp命令 通过使用PyInstaller打包为一个exe,可以直接给运维人员使用 何谓喜欢一个人,遇上她之前不知情为何物...数据库获取文件路径,通过scp远程下载文件到本地的脚本 pip install pymysql pip install paramiko ''' # here put the...date = cursor.fetchall() for i in date: pathName = i["path"] print("获取到的文件位置...Y-%m-%d %H:%M:%S", time.localtime()), "=========================", '\n') print("下载后的文件路径

    2.2K30

    编程体系结构(04):JavaIO流文件管理

    一、IO流分类 1、分类角度 流的方向 输入流:数据源中读取数据到应用中的流; 输出流:应用中将数据写入到目的地的流; 流数据类型 字节流:以字节形式来读写的流,标识是名称以Stream结尾; 字符流...FileInputStream:文件字节输入流以字节的形式将文件中数据读取到应用中; BufferedInputStream:缓冲字节输入流,提供缓冲功能,提高效率; ByteArrayInputStream...File文件; File(File parent,String child):根据parent抽象路径名和child路径名字符创建新的File实例; 2、路径问题 绝对路径:该文件在硬盘上的完整路径。...绝对路径一般都是以盘符开头的。 相对路径: 相对路径就是资源文件相对于当前程序所在的路径。 . 当前路径 .....; 6、获取文件信息 getName():获取文件文件夹名称,不包含上级路径; getPath():返回绝对路径,可以是相对路径,但是目录要指定 四、编码解码 ?

    64820

    (57) 二进制文件和字节流 计算机程序的思维逻辑

    InputStream定义了三个方法,mark/reset/markSupported,用于支持读过的流中重复读取。怎么重复读取呢?...,可以是File对象file,也可以是文件路径name,路径可以是绝对路径,也可以是相对路径,如果文件已存在,append参数指定是追加还是覆盖,true表示追加,没传append参数表示覆盖。...File对象,但必须是一个已存在的文件,不能是目录。...ByteArrayInputStream的所有数据都在内存,支持mark/reset重复读取。 为什么要将byte数组转换为InputStream呢?...DataInputStream的构造方法接受一个InputStream: public DataInputStream(InputStream in) 还是以上面的学生列表为例,我们来看怎么文件中读进来

    1.4K100
    领券