Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将仅存在于内存中的对象文件存储为存储系统中的文件?_Java_File - Fatal编程技术网

Java 如何将仅存在于内存中的对象文件存储为存储系统中的文件?

Java 如何将仅存在于内存中的对象文件存储为存储系统中的文件?,java,file,Java,File,我的程序刚刚收到一个对象,它是文件的实例。如何将所述对象保存为文件? 我希望该文件以人类可读的格式存储,这就是为什么仅仅将对象写入一个新文件(例如)不会起作用的原因 我也不能像这样复制文件,因为我知道的文件只存在于内存中,因此如果我将其设置为源文件,它将不会被重新编码。Ajava.io.file对象并不表示文件。它实际上代表的是一个文件系统路径名;i、 e.文件系统中可能存在或不存在的对象的名称 因此,您的程序根本没有“接收”文件,您可以对已接收的对象执行的唯一操作是保存路径名,或尝试复制路径名

我的程序刚刚收到一个对象,它是文件的实例。如何将所述对象保存为文件? 我希望该文件以人类可读的格式存储,这就是为什么仅仅将对象写入一个新文件(例如)不会起作用的原因


我也不能像这样复制文件,因为我知道的文件只存在于内存中,因此如果我将其设置为源文件,它将不会被重新编码。

A
java.io.file
对象并不表示文件。它实际上代表的是一个文件系统路径名;i、 e.文件系统中可能存在或不存在的对象的名称

因此,您的程序根本没有“接收”文件,您可以对已接收的对象执行的唯一操作是保存路径名,或尝试复制路径名表示(或可能表示)的文件。后者仅在路径名在应用程序的本地文件系统名称空间中有效且表示真实文件(或指向文件的符号链接)时才起作用

我也不能像这里那样复制文件,因为我已经知道的文件只存在于内存中

这没有道理。
文件
不能表示仅存在于内存中的文件(无论您的意思是什么)。如果
File::exists()
返回
true
,则该文件位于文件系统中。如果返回
false
,则
文件
根本不表示可访问的文件:它不在磁盘上,也不在内存中


一些操作系统支持所谓的“ram文件系统”,其中系统的物理或虚拟内存用于存储文件。但是这种文件中的文件可以像普通文件一样复制


Java7和更高版本允许您使用
Java.nio.file.FileSystem
的子类定义自己的内存中“虚拟”文件系统。但是
文件
不适用于此方法。您可以使用
java.nio.file.Path
对象


现在可能是您实际上想说的是,
文件
表示存在于不同机器上的文件。。。这就是为什么你不能复制它。如果这就是问题所在,那么也没有简单的解决办法。一台机器不能仅仅“伸出手”读取另一台机器硬盘上的任意文件。如果这就是您的问题所在,那么您需要设置远程文件系统装载,或者使用文件传输机制