草庐IT

fileinputstream

全部标签

java - 读取任何具有奇怪编码的文本文件?

我有一个带有奇怪编码“UCS-2LittleEndian”的文本文件,我想使用Java读取它的内容。如您在上面的屏幕截图中所见,文件内容在Notepad++中显示正常,但是当我使用此代码读取它时,控制台中打印的只是垃圾:StringtextFilePath="c:\strange_file_encoding.txt"BufferedReaderreader=newBufferedReader(newInputStreamReader(newFileInputStream(filePath),"UTF8"));Stringline="";while((line=reader.readLi

JAVA:文件输入流和文件输出流

我对输入和输出流有这种奇怪的感觉,我无法理解。我使用输入流从这样的资源中读取属性文件:Propertiesprop=newProperties();InputStreamin=getClass().getResourceAsStream("/resources/SQL.properties");rop.load(in);returnprop;它找到了我的文件并成功将其标记为红色。我尝试像这样编写修改后的设置:prop.store(newFileOutputStream("/resources/SQL.properties"),null);我在存储时遇到了奇怪的错误:java.io.Fi

java - 我怎么知道哪个文件流支持在 Java 中查找

java.io.InputStream.skip()说“抛出:IOException-如果流不支持查找,或者发生其他一些I/O错误。”我怎么知道哪个文件流支持搜索?当我在google上找到Seekable时,但我可以看到简单的FileInputStream、ByteArrayInputStream...也支持skip(),我的意思是不给出IOException;它们不扩展Seekable。 最佳答案 唯一可以确定的方法是阅读您感兴趣的任何特定流的javadoc。那里的继承层次结构很糟糕,但它是一个旧类。编辑:我刚刚阅读了javado

java - 好的设计 : How to pass InputStreams as argument?

我有一个大文件,我正在打开一个FileInputStream。该文件包含一些文件,每个文件都具有相对于开头的偏移量和大小。此外,我有一个解析器应该评估这样一个包含的文件。Filefile=...;//thebigfilelongoffset=1734;//acontainedfile'soffsetlongsize=256;//acontainedfile'ssizeFileInputStreamfis=newFileInputStream(file);fis.skip(offset);parse(fis,size);publicvoidparse(InputStreamis,long

java读写构造

谁能解释一下为什么这个结构不起作用:while(fileInputStream.available()>0){fileOutputStream.write(fileInputStream.read());}这个工作得很好:while(fileInputStream.available()>0){intdata=fileInputStream.read();fileOutputStream.write(data);}对我来说它们是相同的,但第一个不会正确写入数据(将写入文件长度/数据的一半)。 最佳答案 您错误地使用了availabl

java - 我可以将 Eclipse 设置为忽略 "Unhandled exception type"

是否可以让Eclipse忽略错误“未处理的异常类型”?在我的具体情况下,原因是我已经检查过文件是否存在。因此,我认为没有理由放入trycatch语句。file=newFile(filePath);if(file.exists()){FileInputStreamfileStream=openFileInput(filePath);if(fileStream!=null){还是我遗漏了什么? 最佳答案 IsitpossibletogetEclipsetoignoretheerror"UnhandledexceptiontypeFile

java - FileInputStream 是否已经在使用缓冲区?

当我使用FileInputStream读取一个对象(比如几个字节)时,底层操作是否涉及:1)读取磁盘的整个block,这样如果我随后执行另一个读取操作,就不需要真正的磁盘读取,因为文件的那部分已经在上次读取操作中获取了吗?或2)由于FileInputStream不做任何缓冲而应该使用bufferedInputStream来实现(1)的效果,因此发生新的磁盘访问?我认为,由于FileInputStream使用read系统调用并且它只从硬盘读取一组页面,因此必须进行一些缓冲。 最佳答案 FileInputStream将进行底层nativ

java - 为什么 Java 中的 FileInputStream 读取方法返回一个 int,而不是一个 short?

我知道byte的类型不足以包含读取方法的结果。所以,read方法返回的是int类型的值。但我认为short类型比int更有效。它可以包含范围-256~255的值。为什么read方法返回的是int,而不是short? 最佳答案 Javadocumentationonprimitivetypes建议应该使用short而不是int来“在大型数组中节省内存”:short:Theshortdatatypeisa16-bitsignedtwo'scomplementinteger.Ithasaminimumvalueof-32,768andam

java - 使用 File 对象初始化 FileInputStream 时获取 FileNotFoundException

我正在尝试使用File对象初始化FileInputStream对象。我在行中收到FileNotFound错误fis=newFileInputStream(file);这很奇怪,因为我已经多次通过相同的方法打开此文件来执行正则表达式。我的方法如下:privateBufferedInputStreamfileToBIS(Filefile){FileInputStreamfis=null;BufferedInputStreambis=null;try{fis=newFileInputStream(file);bis=newBufferedInputStream(fis);}catch(Fil

Java 将对象输入流读取到数组列表中?

下面的方法应该将一个二进制文件读入一个arrayList。但是得到一个java.io.EOFException:atjava.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2553)atjava.io.ObjectInputStream.readObject0(ObjectInputStream.java:1296)atjava.io.ObjectInputStream.readObject(ObjectInputStream.java:350)at....Read(Tester.ja