从Java中的字符串在内存中创建文件对象
我有一个函数,它接受File作为参数。我不想为了将字符串数据传递给函数而创建/写入新文件(我没有对文件系统的写入权限)。我应该补充一点,文件中不存在字符串数据(因此我无法从文件中读取数据)
我可以使用流并将其“强制”到文件对象中吗
你可以在下面搜索框中键入要查询的问题!
我有一个函数,它接受File作为参数。我不想为了将字符串数据传递给函数而创建/写入新文件(我没有对文件系统的写入权限)。我应该补充一点,文件中不存在字符串数据(因此我无法从文件中读取数据)
我可以使用流并将其“强制”到文件对象中吗
# 1 楼答案
Java中的File对象是指向目录或文件的路径的表示,而不是文件本身。创建
File
对象不需要对文件系统具有写访问权限,只有在打算实际写入文件时才需要它(例如使用FileOutputStream)# 2 楼答案
File
类表示文件的“想法”,而不是用于I/O的实际句柄。这就是为什么File
类有一个.exists()
方法来告诉您文件是否存在的原因。(怎么可能有一个不存在的File
对象?)相比之下,构造一个
new FileInputStream(new File("/my/file"))
会为您提供一个实际的流来读取字节# 3 楼答案
通常,当一个方法接受一个文件时,附近还有另一个方法接受一个流。如果不是这样,那么API的编码就很糟糕。否则,您可以使用临时文件,在许多情况下,通常会授予临时文件权限。如果是applet,您可以request write permission
例如:
# 4 楼答案
使用文件读取器加载文件,然后将其内容写入字符串缓冲区
example
上面的链接向您展示了如何实现这一点的示例。正如这个答案的另一篇帖子所说,只要不打算对实际文件进行更改,将文件加载到内存中就不需要写访问
# 5 楼答案
没有;类
File
的实例表示文件系统中的路径。因此,只能对文件使用该函数。但是也许有一个重载需要一个InputStream
来代替