问题标签 [fileinputstream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3090 浏览

java - servlet:将 ServletInputStream 转换为 FileInputStream

我正在编写一个 servlet,它接收一个 xml 文件,将它提供给另一个类,并将一个带有一些注释的 html 文件返回给客户端。我正在使用以下内容获取 input-xml:

input = request.getInputStream();

但是这个输入是一个 ServletInputStream,而另一个类(用于注释)需要一个 FileInputStream。

如果我给 XMLEventReader(在另一个类中)ServletInputStream,我得到一个解析错误:

我认为这是因为 servletinputstream 而不是 fileinputstream。

问候我希望有人能够帮助我:)

0 投票
5 回答
3426 浏览

java - 为什么 FileInputStream read() 不阻塞?

我有一个 Writer 程序,它将一行文本写入文件,然后等到用户点击返回,然后再写入另一行,然后退出。只有在那之后才关闭文件。编码:

首先开始:

写手

然后我还有一个阅读器程序,只要文件的写入尚未完成(即 pw.close() 尚未被调用),它就应该(我预期)阻塞。编码:

从...开始:

java阅读器FIS

现在我希望 read() 在阅读第一个“Hello World”文本后阻塞,基于 Javadoc 文档中的这个:

从此输入流中读取一个字节的数据。如果还没有输入可用,则此方法会阻塞。通过:http://docs.oracle.com/javase/6/docs/api/java/io/FileInputStream.html#read()

但是 ReaderFIS 在阅读“Hello World”后立即完成,并且显然看到了 EOF!所以它不会阻塞!它转储字符值,然后是 -1,然后打印“exiting”。

输出: ch = 72 ch = 101 ch = 108 ch = 108 ch = 111 ch = 32 ch = 87 ch = 111 ch = 114 ch = 108 ch = 100 最后一个 ch = -1 退出

我尝试的其他变体是:通过 getChannel() 读取,通过 getChannel() 检查是否可以锁定(),使用 available(),尝试使用缓冲区读取 read(),尝试 readLine(),连续写入一个字符文件在每次写入之间有 500 毫秒的暂停,不写任何东西,只是在 Writer 中保持文件打开。
这些变化都不会导致 ReaderFIS 程序阻塞,它总是会结束。

为什么阅读器程序不阻塞?我错过了一些非常明显的东西吗?ReaderFIS 程序似乎找到了 EOF (-1),但为什么呢?该文件尚未被 Writer 程序关闭。

“有趣”的旁注: System.in.read() 被阻塞了!(并等待用户按 Enter)。

PS:在 Windows XP 和 Suse Linux 上试过这个。在 Windows 上,当编写器运行时,我无法删除文件(正如我所料)。

问候, 马可

0 投票
1 回答
229 浏览

c++ - C++ 中的文本文件输入问题

我必须阅读一个文本文件;但是,一个特定的文本文件给我带来了问题。不仅文本文件很大(一整本电子书),而且还有几个重音字母。我一次读一个字母,停在适当的标点符号或空格上。我通过为字母和标点符号(例如撇号)测试适当的 ASCII 来做到这一点。有没有办法我也可以读重音字母,但将它们与其他字母分开?我需要添加任何随机库吗?

这是我得到这个词的代码:

到目前为止,适用于每个文件,除了这个。
你可以在这里看到输入-> http://www.gutenberg.org/cache/epub/244/pg244.txt

0 投票
2 回答
4252 浏览

java - 使用java压缩文件夹结构

我正在尝试在我的机器上压缩以下文件结构,

这里的问题是我无法使用 java 压缩上述文件结构。我有谷歌并找到以下代码示例,但它仅将文件压缩到给定文件夹中。

在上面的代码中,out 是一个文件夹,我们需要有一些文件。如果文件夹不能为空,它会抛出异常 java.util.zip.ZipException 或不能包含任何子文件夹,甚至其中的文件(例如:out \newfolder\image.jpeg) 如果是这样,它会抛出 java.io.FileNotFoundException: out\newfolder (访问被拒绝)。

在我的情况下,我通过查询数据库来构建上述文件结构,有时可以拥有沿文件夹结构的空文件夹。

有人可以告诉我一个解决方案吗?

谢谢你。

0 投票
1 回答
2235 浏览

java - 带有路径的 FileInputStream 包含通配符

我正在从数据库中获取一些文件的完整路径,然后将这些文件压缩到该路径中。所以这里的问题是路径包含通配符,即使是目录和文件也是如此。例如:

那么我怎样才能让这些 xml 文件驻留在文件输入流的路径下以便以后压缩它们呢?

如果我没有通配符并且只有路径代表文件所在的目录,我会执行以下操作来添加每个文件。但问题是我的路径包含带有通配符的文件名。

谢谢你。

0 投票
3 回答
793 浏览

java - 将 URL 外部化的最佳方法是什么?

我的应用程序中有 10 个 URL,它们当前是硬编码的。我想将其外部化并将其放入文件中,以便我的应用程序可以读取它。

这样做的最佳方法是什么?

注意:我永远不会在我的应用程序中写出这个文件。我希望开发人员能够打开文件,并在必要时更改 URL。

0 投票
7 回答
22529 浏览

java - Java:从带有缓冲输入的随机访问文件中读取字符串

我以前从未有过使用 Java IO API 的亲密体验,现在我真的很沮丧。我很难相信它是多么的奇怪和复杂,做一个简单的任务是多么的困难。

我的任务:我有 2 个位置(起始字节、结束字节)pos1pos2. 我需要读取这两个字节之间的行(包括开始一个,不包括结束一个)并将它们用作 UTF8 String 对象。

例如,在大多数脚本语言中,它会是一个非常简单的 1-2-3-liner (在 Ruby 中,但对于 Python、Perl 等来说基本相同):

Java IO API 很快就搞砸了;)事实上,我看到了两种\n从常规本地文件中读取行(以 结尾)的方法:

  • RandomAccessFile具有getFilePointer()and seek(long pos),但它的readLine()读取非 UTF8 字符串(甚至不是字节数组),但非常奇怪的字符串编码损坏,并且它没有缓冲(这可能意味着每个read*()调用都将被转换为单个 undelying OS read()= > 相当慢)。
  • BufferedReader有很好的readLine()方法,它甚至可以用 做一些查找skip(long n),但是它无法确定已经读取的偶数字节,更不用说文件中的当前位置了。

我试过使用类似的东西:

...然后fc.position()用于获取当前文件读取位置并fc.position(newPosition)设置一个,但在我的情况下它似乎不起作用:看起来它返回由 BufferedReader 完成的缓冲区预填充的位置,或者类似的东西 - 这些计数器似乎以 16K 为增量四舍五入。

我真的必须自己实现这一切吗,即一个文件阅读界面,它将:

  • 允许我在文件中获取/设置位置
  • 缓冲文件读取操作
  • 允许读取 UTF8 字符串(或至少允许诸如“读取所有内容直到下一个\n”之类的操作)

有没有比自己实施更快的方法?我在监督什么吗?

0 投票
4 回答
3584 浏览

c++ - C++ 线到向量

哇,我今天到处都是问题,如果它们似乎重叠,我很抱歉,但是对于每个问题都会出现另一个问题......因为一件事不起作用......但我应该使用别的东西...... ....ETC。

无论如何,我有一个文本文件:

6 是第二行中的“浮点数”(3.0、2.5 等) 3.0、2.5、-1.5 都是一系列浮点数。6 和 10 只是 2 个整数。

我有一个向量

我需要做的就是将第二行放入数字中。所以现在我有

我可以简单地做一个 myfile>> 来获得第一个值 (6) 但我将如何将第二行放入我的向量中?请记住,通过阅读第一行(在本例中为 6),我只知道第 2 行有多大。

最后两个数字也不应该在这个向量中,而是两个单独的值。我可以做 myfile >> a >> b。

再次抱歉这么多问题。但我确实一直在到处寻找并提出可能错误的问题。

0 投票
6 回答
494 浏览

android - 打开一个 12kb 的文本文件需要太长时间......?

以下代码有效,但打开一个小文件需要很长时间(超过一分钟)。LogCat 显示了很多“GC_FOR_MALLOC freed #### objects / ###### bytes in ##ms”的实例。有什么建议么?

更新:

这就是它现在的样子:

谢谢你们!!

0 投票
5 回答
53483 浏览

java - Reader 和 InputStream 有什么区别?

Reader 和 InputStream 有什么区别?什么时候用什么?如果我可以使用 Reader 读取字符,为什么我会使用 inputstream,我猜是读取对象?