我的同事和我在就Java中的
在我们的代码中:
我知道这有点不清楚,但总的意思是它创建了一个的并将其写入从先前方法传递的对象中。他们认为这不会写入文件目录,因为有方法,但我确切地知道昨天在那个位置上有一个文件,并且今天这段代码运行并在那个确切的位置上写了一个文件。因为,尽管实际的文件被删除了,但指向该文件位置的指针仍然在中,并且使用创建使得指向该位置。
在这种情况下,有理由相信这个文件不会被写入吗?理想情况下,我想要一些证据证明方法删除的是对象所指向的文件,而不是指针本身。
File.delete()
方法如何工作进行争论。在我们的代码中:
File outFile = new File("/dir/name.ext");
if(outFile.exists())
outFile.delete();
FileInputStream inStream = new FileInputStream(outFile);
WriteFile.writeFile(inStream); // Writes the actual file
由于安全原因,我无法在此处包含writeFile
的整个方法体,但它创建所需的数据库对象后执行以下操作:
BufferedOutputStream out = null;
Object[] args = {"an_encrypted_data_clob_name_in_the_database"};
Class[] argTypes = {Class.forName("java.lang.String")};
Object result = WSCallHelper.jdbcCall(null, rs, "getCLOB", args, argTypes);
CLOB clob = (CLOB)result;
out = new BufferedOutputStream(clob.getAsciiOutputStream());
byte[] buffer = new byte[512];
int bytesRead = -1;
while((bytesRead = inStream.read(buffer)) > -1)
out.write(buffer, 0, bytesRead);
我知道这有点不清楚,但总的意思是它创建了一个的并将其写入从先前方法传递的对象中。他们认为这不会写入文件目录,因为有方法,但我确切地知道昨天在那个位置上有一个文件,并且今天这段代码运行并在那个确切的位置上写了一个文件。因为,尽管实际的文件被删除了,但指向该文件位置的指针仍然在中,并且使用创建使得指向该位置。
在这种情况下,有理由相信这个文件不会被写入吗?理想情况下,我想要一些证据证明方法删除的是对象所指向的文件,而不是指针本身。
文件(File)
仅包含文件位置信息,它不会维护与文件的任何连接,也不会保持文件处于打开状态。 - Aasmund EldhusetFile
这个类名取得不好,因为File
实例并 _不代表_(或以任何方式代表)一个文件。File
实例代表了一个 _路径名_。显然,删除具有特定路径名的文件并不会防止您随后创建具有相同路径名的新文件。 - Solomon Slow