在内存中从 Java 中的字符串创建 File 对象

2022-08-31 08:54:14

我有一个接受File作为参数的函数。我不想创建/写入一个新的文件(我没有文件系统的写入权限)以便将我的字符串数据传递给函数。我应该补充一点,字符串数据不存在于文件中(因此我无法从文件中读取数据)。

我可以使用流并将其“投射”到文件对象吗?


答案 1

通常,当一个方法接受文件时,附近有另一个接受流的方法。如果不是这种情况,则 API 编码不当。否则,您可以使用临时文件,在许多情况下通常会授予临时文件的权限。如果是小程序,您可以请求写入权限

例如:

try {
    // Create temp file.
    File temp = File.createTempFile("pattern", ".suffix");

    // Delete temp file when program exits.
    temp.deleteOnExit();

    // Write to temp file
    BufferedWriter out = new BufferedWriter(new FileWriter(temp));
    out.write("aString");
    out.close();
} catch (IOException e) {
}

答案 2

否;类的实例表示文件系统中的路径。因此,只能对文件使用该函数。但是,也许有一个重载需要一个?FileInputStream