我正在为一个奇怪的问题而斗争。首先,我没有机会改变方式,文件是创建的;这是供应商的责任。
在IBM Domino服务器上,我为命令"tell traveler show user“创建了一个响应文件。该文件是文本文件。在某些情况下(完整内容请参见http://www.eknori.de/2017-02-05/fun-with-ibm-traveler-and-java/ ),文件中间会包含一个-1字符(EOF)。
我尝试了几种读取文件的方法( BufferedReader、Scanner、InputStream、LineIterator等等),但它们都会检查-1或null作为EOF的指示符。
我已经别无选择了。有人知道如何从文件中获取全部数据吗?
更新:
下面是创建的文件的内容,以及我在服务器控制台(和BufferedReader )上获得的内容


在十六进制中没有区别,但是第二个停止处理文件。
发布于 2017-02-08 18:20:03
我不确定,但我认为您应该尝试不同的编码,而不是默认编码,在这种情况下,EOF可能会被视为不同的字符&此时您的FileInputStream不会终止。但要做到这一点,您必须使用适当的技术将读取的文本转换为实际的文本。
发布于 2017-02-08 18:25:25
您可以将流读入byte[]数组(或ByteBuffer),然后read方法返回读取的字节数。
尽管如此-我想你应该考虑:
发布于 2017-02-08 19:42:36
好的,"bufferedreader“可以很好地解决你的问题,我试过了
public class ee {
public static void main(String[] args) {
String thisLine = "";
try{
BufferedReader br = new BufferedReader(new FileReader(new File("C:/Users/rathi.ankush/Desktop/temp.txt")));
while ((thisLine = br.readLine()) != null) {
System.out.println(thisLine);
}
}catch(Exception e){
e.printStackTrace();
}
}
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
https://stackoverflow.com/questions/42110177
复制相似问题