【问题标题】:In Java, how do I create a File from a String without writing it to disk?在 Java 中,如何从字符串创建文件而不将其写入磁盘?
【发布时间】:2014-01-29 00:05:30
【问题描述】:

我的字符串中有一些无法写入磁盘的文本。我需要将它传递给只接受 File 作为类型的方法。我可以通过什么转换链来做到这一点?我想我是从 ByteArrayInputStream 开始的,但是接下来呢?

【问题讨论】:

  • 文件是一个对象,它(或多或少)描述了磁盘上存在或您希望存在的文件位置。它不是文件本身,因此它实际上并不保存数据
  • 一种方法是继承 File 并覆盖该方法内部调用的方法。但这听起来很丑陋。您能否更具体地说明您使用的是哪个库,以便您只能使用接收文件的方法?
  • @morgano:接收文件的方法来自第三方,我们影响不大,不是源代码。
  • 为什么不能写入磁盘?在我看来,如果该方法只接受 File,它是磁盘上文件的路径,你不能保证当磁盘上没有这样的文件时代码仍然可以工作。
  • 根据 3rd 方代码的性质,您可以尝试公开私有方法以使其执行您的竞标,而无需提供文件。不过,这可能会给您带来更多麻烦,我宁愿寻找更适合您需求的另一个库。

标签: java string file type-conversion


【解决方案1】:

问题是 java.io.File 没有提供任何读取它的方法,它只是对文件系统中文件的引用,它可能不存在。

您调用的方法可能只是使用 file.getAbsolutePath() 获取文件的完整地址并使用它打开 InputStream。

如果有接收 InputStream 的方法,那么您可以发送您的 ByteArrayInputStream。

即使该方法可以接收 URL,那么您也可以打开一个小型 HTTP 服务器并提供数据...但是使用文件有点困难。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 2011-05-09
    • 1970-01-01
    • 2021-05-03
    相关资源
    最近更新 更多