草庐IT

FileInputStream

全部标签

java - 使用java的Windows机器中的绝对文件路径是什么?

我在我的程序中的两个地方引用了文件路径。在一个地方,我在FileInputStream中传递文件路径,在另一个地方我传递给SpringgetResource()方法。如果我在FileInputStream中给出文件路径,如“file:/C:/myfile”,则会抛出错误。我必须给C:\\myfile。但是在getResource()方法中,如果我给C:\\myfile它会抛出错误,我必须给file:/C:/myfile。为什么会有这种差异?你能解释一下吗? 最佳答案 FileInputStream正在采用表示文件路径的String。

java - FileInputStream 是如何找到文件的?

我正在设计一个需要从包含大约10^8个文件的文件夹中读取文件的程序。FileInputStream如何从提供的文件名中找到所需的文件?它的工作方式是否与具有O(1)查找时间的HashMap类似,或者它是否线性遍历给定文件夹中的文件直到找到匹配项?我想这可能与Windows文件存储的工作方式有关,而不是与FileInputStream有关,但老实说我不确定。 最佳答案 文件名被传递给操作系统,它会读取目录以寻找匹配的名称。它可能会优化查找,但不会涉及Java。您可以考虑将文件分成多个目录,最好使用更少的文件。打开和关闭大量小文件花费了

Java FileInputStream 在 Windows 和 Linux 中表现出不同的行为

我在为跨平台Java应用程序编写单元测试时遇到了一个奇怪的问题,特别是使用FileInputStream。这个测试原来是用Windows写的,通过了FileInputStreaminputStream=newFileInputStream(file.getAbsolutePath());FileOutputStreamoutputStream=FileUtils.getFileOutputStream(file.getAbsolutePath());outputStream.write('a');outputStream.close();Assert.assertEquals(inpu

java - 使用 FileInputStream 启动连接后删除文件

我有一个临时文件,我想将其从PlayFramework中的Controller发送给客户端。我可以在使用FileInputStream打开连接后删除文件吗?例如,我可以做这样的事情吗-Filefile=getFile();InputStreamis=newFileInputStream(file);file.delete();renderBinary(is,"name.txt");如果文件很大怎么办?如果我删除该文件,InputStream上的后续reads()会出错吗?我尝试使用大约1MB的文件,但没有出现错误。抱歉,如果这是一个非常幼稚的问题,但我找不到与此相关的任何内容,而且我是

java - 创建和下载 Zip 文件 java

在我的申请中没有特定投标的文件(pdf)。我需要从这些pdf文件创建一个zip文件并允许用户下载它。应用程序是在JavaEE中使用struts和mysql完成的。当用户单击下载按钮时,将调用此操作类。该代码没有给出任何异常(exception),但也不会提示用户下载任何内容。请帮我找出代码中的错误。以下是我的Action类的源代码..publicclassActDownloadDocZipextendsAction{staticLoggerlogger=Logger.getLogger(ActDownloadDocZip.class);publicActionForwardexecut

java - 持续读取附加到日志文件的行

关于我之前的question,我发现maven并不能真正输出jboss控制台。所以我想我想解决它。这是交易:当jboss运行时,它会将控制台日志写入server.log文件,所以我试图在数据进入时检索数据,因为文件每隔几秒就会被jboss更改/更新我遇到了一些困难所以我需要帮助。我真正需要的是:读取文件server.log当server.log被更改并添加更多行时输出更改这是到目前为止我得到的代码,它有一个问题,它无限期地运行并且每次都从文件的开头开始,我希望它继续打印server.log中的新行.希望这里的代码有意义:importjava.io.*;classFileRead{pub

java - 获取 ZipInputStream 的大小

在我们完全读取流之前,是否可以找到/估计ZipInputStream的大小?例如,我们可以在读取用户数据之前使用getNextEntry获取条目的元数据。Inputstream有一个方法available()来返回可以从这个输入流中读取的字节数的估计值,但我无法为ZipInputStream找到类似的方法。 最佳答案 ZipInputStream有方法available()但它返回0或1。要获得任何类型文件的估计大小,您可以使用FileInputStream,然后使用ZipInputStream读取zip文件。例如。publiccl

java - 如何使用AOP拦截File、FileReader、FileWriter、FileInputStream、FileOutputStream的构造函数?

我想拦截File、FileReader、FileWriter、FileInputStream和FileOutputStream的构造函数,并防止任何文件名包含“..”(以防止路径遍历攻击)或“\0”(以防止文件名空字符攻击)。关于如何使用SecurityManager做同样的事情,我还有另一个悬而未决的问题,但还没有人回答它,所以我希望这种替代方法能奏效。这是用于tomcat上的springwebapp。我知道我可以通过创建自己的SafeFile、SafeFileReader等类并修改代码以使用它们来手动执行此操作。但是,我们的代码中有960个地方使用了这些对象的构造函数,所以我宁愿避

java - 作为 jar 运行时出现 FileNotFoundException

FileInputStreamfstream=newFileInputStream("abc.txt")在作为jar运行时抛出FileNotFoundExceptionn。为什么?通常它能够在从main方法运行时找到。 最佳答案 classMyClass{InputStreamfstream=this.getClass().getResourceAsStream("abc.txt");}应该使用此代码。并且文件(在本例中为abc.txt)应保存在对象引用类位置。这意味着,this.getClass指的是某个文件夹的位置,即com/m

java - FileInputStream.available 会愚弄我吗?

这个FileInputStream.available()javadoc说:Returnsanestimateofthenumberofremainingbytesthatcanberead(orskippedover)fromthisinputstreamwithoutblockingbythenextinvocationofamethodforthisinputstream.Thenextinvocationmightbethesamethreadoranotherthread.Asinglereadorskipofthismanybyteswillnotblock,butmayr