在Java中使用字符串在内存中创建File对象

Jon*_*ero 106 java file-io file

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

我可以使用Streams并将它们"转换"为File对象吗?

Chr*_*ett 69

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

一个例子:

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) {
}
Run Code Online (Sandbox Code Playgroud)


mer*_*ike 45

没有; 类的实例File表示文件系统中的路径.因此,您只能将该函数用于文件.但也许有一个重载需要InputStream反而?


Kev*_*n K 12

一个文件中的Java对象是一个目录或文件,而不是文件本身的路径的表示.您不需要对文件系统具有写入权限来创建File对象,如果您打算实际写入文件,则只需要它(例如,使用FileOutputStream)


wbe*_*rry 7

File类代表一个文件,而不是实际的手柄用于I/O的"想法".这就是为什么File类有一个.exists()方法,告诉你文件是否存在.(你怎么能有一个File不存在的对象?)

相比之下,构造一个new FileInputStream(new File("/my/file"))给你一个实际的流来读取字节.

  • 好点子; 虽然没有回答这个问题. (5认同)