Tag: eof

使用\ Z vs \ z作为扫描仪分隔符的行为

[编辑]我找到了答案,但由于新用户的限制,我无法回答这个问题。 无论哪种方式,这都是Java中的已知错误。 http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8028387 我正在尝试在64位ubuntu上将文件读入Java 6中的字符串。 Java给了我一个非常奇怪的结果, “\\Z”它读取整个文件,但是”\\z”它读取整个字符串最多1024个字符。 我已经阅读了所有课程的Java 6 API,但我很茫然。 \ Z和\ z的描述可在以下位置找到: http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html#lt 什么可能导致这种奇怪的行为? String fileString = new Scanner(new File(fileName)).useDelimiter(“\\z”).next(); String fileString2 = new Scanner(new File(fileName)).useDelimiter(“\\Z”).next(); System.out.println(“using Z : ” + fileString2.length()); System.out.println(“Using z “+ fileString.length()); 输出:使用Z:9720使用z:1024 谢谢! 有关文件/ java-version的详细信息: 用java-6-openjdk-amd64运行Ubuntu(也用oracle java6测试)文件是简单的文本文件UTF-8编码。

文件结尾NullPointerException

我想要的是通过从命令行键入Ctrl + z并从控制台读取BufferedReader来达到EOF 。 以下代码执行此操作。 但问题是,它在到达EOF后发出NullPointerException 。 有没有办法跳过这个例外? 或者更准确地说,从控制台读取BufferedReader到达EOF的正确方法是什么? import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; class EOF { public static void main(String args[]) { String s = “”; String EOF = “^z”; BufferedReader read = new BufferedReader(new InputStreamReader(System.in)); try { while (!s.equals(EOF)) { s = read.readLine(); } } catch (IOException e) {} } }

来自hbase / filesystem的hadoop namenode连接中EOFexception的含义是什么?

这是关于java EOFexception的一般性问题,以及与jar互操作性相关的Hadoop的EOFexception。 任何一个主题的评论和答案都是可以接受 背景 我注意到一些讨论隐藏exception的线程,这最终是由“readInt”方法引起的。 这个例外似乎有一些与hadoop无关的通用含义,但最终是由Hadoop jar的互操作性引起的。 在我的例子中,当我尝试在java中的hadoop中创建一个新的FileSystem对象时,我得到了它。 题 我的问题是:发生了什么以及为什么读取整数会引发EOFexception? 什么“文件”是这个EOFexception所指的,如果两个jar无法互操作,为什么会抛出这样的exception呢? 其次,我也想知道如何解决这个错误,这样我就可以使用hdfs协议和java api远程连接和读/写hadoops文件系统…. java.io.IOException:在本地exception上调用/10.0.1.37:50070失败:java.io.EOFException at org.apache.hadoop.ipc.Client.wrapException(Client.java:1139) 在org.apache.hadoop.ipc.Client.call(Client.java:1107) 在org.apache.hadoop.ipc.RPC $ Invoker.invoke(RPC.java:226) 在$ Proxy0.getProtocolVersion(未知来源) 在org.apache.hadoop.ipc.RPC.getProxy(RPC.java:398) 在org.apache.hadoop.ipc.RPC.getProxy(RPC.java:384) 在org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:111) 在org.apache.hadoop.hdfs.DFSClient。(DFSClient.java:213) 在org.apache.hadoop.hdfs.DFSClient。(DFSClient.java:180) 在org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:89) 在org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1514) 在org.apache.hadoop.fs.FileSystem.access $ 200(FileSystem.java:67) at org.apache.hadoop.fs.FileSystem $ Cache.getInternal(FileSystem.java:1548) 在org.apache.hadoop.fs.FileSystem $ Cache.get(FileSystem.java:1530) 在org.apache.hadoop.fs.FileSystem.get(FileSystem.java:228) 在sb.HadoopRemote.main(HadoopRemote.java:35) 引起:java.io.EOFException 在java.io.DataInputStream.readInt(DataInputStream.java:375) 在org.apache.hadoop.ipc.Client $ Connection.receiveResponse(Client.java:819) 在org.apache.hadoop.ipc.Client $ Connection.run(Client.java:720)

如何查看读者是否在EOF?

我的代码需要读入所有文件。 目前我正在使用以下代码: BufferedReader r = new BufferedReader(new FileReader(myFile)); while (r.ready()) { String s = r.readLine(); // do something with s } r.close(); 但是,如果文件当前为空,则s为null,这是不好的。 是否有任何具有atEOF()方法或等效的Reader ?

Java,需要一个while循环来实现eof。 iewhile!eof,继续解析

我目前有一个有效的解析器。 它解析一次文件(不是我想要它做的),然后将解析后的数据输出到文件中。 我需要它继续解析并附加到相同的输出文件,直到输入文件的末尾。 看起来像这样。 try { // my code parsing the data and appending to eof of output. (works) } catch (EOFException eof){ } 除了while循环,一切都完成了。 它只在需要它时才解析一次以保持解析。 我正在寻找一个while循环函数来达到eof。 我也在使用DataInputStream。 是否有某种DataInputStream.hasNext函数? DataInputStream dis = new DataInputStream(new FileInputStream(inFile)); ie dis.read(); 。 //Need a while !eof while loop try { // my code parsing the data and appending to […]

如何在Java套接字中识别EOF?

我想识别Java套接字中的数据流结束 。 当我运行下面的代码时,它只是卡住并继续运行(它停留在值10 )。 我也希望程序下载二进制文件,但最后一个字节总是不同的,所以我不知道如何停止while (实用)。 String host = “example.com”; String path = “/”; Socket connection = new Socket(host, 80); PrintWriter out = new PrintWriter(connection.getOutputStream()); out.write(“GET “+ path +” HTTP/1.1\r\nHost: “+ host +”\r\n\r\n”); out.flush(); int dataBuffer; while ((dataBuffer = connection.getInputStream().read()) != -1) System.out.println(dataBuffer); out.close(); 谢谢你的任何提示。

使用jmap命令的Java堆转储错误:过早的EOF

我在执行下面的命令时遇到了以下exception jmap -dump:format=b,file=heap_dump.bin 输出: Dumping heap to Exception in thread “main” java.io.IOException: Premature EOF at sun.tools.attach.HotSpotVirtualMachine.readInt(HotSpotVirtualMachine.java:248) at sun.tools.attach.LinuxVirtualMachine.execute(LinuxVirtualMachine.java:199) at sun.tools.attach.HotSpotVirtualMachine.executeCommand(HotSpotVirtualMachine.java:217) at sun.tools.attach.HotSpotVirtualMachine.dumpHeap(HotSpotVirtualMachine.java:180) at sun.tools.jmap.JMap.dump(JMap.java:242) at sun.tools.jmap.JMap.main(JMap.java:140) JDK版本: 1.7.0_45 VM_OPT: -Xms2g -Xmx4g -XX:+UseG1GC -XX:MaxGCPauseMillis=1500 -XX:G1HeapRegionSize=2 -XX:+PrintFlagsFinal -XX:ParallelGCThreads=4 -XX:ConcGCThreads=2 硬件:RHEL 5.x,4核CPU Linux机器6 GB RAM 根据oracle bug报告数据库( http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6882554 ),这个问题已经修复但我仍然得到jdk 1.7版本,内置版本号:45 除了升级到Jdk 1.8之外,您能否提出任何解决方案,由于其他依赖性,这在我的情况下是不可能的? 编辑: 我已尝试使用以下命令,此命令也不起作用( 生成部分转储文件 )并显示相同的早期EOF。 jmap -J-d64 […]

在Java中读取网页IOException早期EOF

我经常在阅读网页时遇到“早熟EOF”exception。 以下是StackTrace java.io.IOException: Premature EOF at sun.net.www.http.ChunkedInputStream.readAheadBlocking(ChunkedInputStream.java:556) at sun.net.www.http.ChunkedInputStream.readAhead(ChunkedInputStream.java:600) at sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:687) at java.io.FilterInputStream.read(FilterInputStream.java:133) at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2968) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177) at java.io.InputStreamReader.read(InputStreamReader.java:184) at java.io.BufferedReader.fill(BufferedReader.java:154) at java.io.BufferedReader.readLine(BufferedReader.java:317) at java.io.BufferedReader.readLine(BufferedReader.java:382) at Utilities.getPage(Utilities.java:24) while ((line = rd.readLine()) != null) { at TalkPage.(TalkPage.java:15) at Updater.run(Updater.java:65) 以下是getPage()方法 public static String getPage(String urlString) throws Exception { URL url = new […]

在java中读取输入直到EOF

在C ++中如果我想读取输入直到EOF,我可以用以下方式完成 while(scanf(“%d”,&n)) { A[i]=n; i++; } 然后我可以将此代码作为./a.out <input.txt运行。 这段代码的java等价物是什么?

如何防止InputStream.readObject()抛出EOFException?

我序列化一个对象并将其保存为我的硬盘上的文件。 当我正在阅读它时,仅在某些情况下它会抛出EOFException 。 经过几个小时的调试后,我无法找到问题。 这是我的代码: public void serialize(MyClass myClass,String path) { FileOutputStream foStream = null; ObjectOutputStream ooStream = null; try { File file = new File(path); if (!file.exists()) { file.createNewFile(); } foStream = new FileOutputStream(file); ooStream = new ObjectOutputStream(foStream); ooStream.writeObject(myClass); } catch (Throwable t) { log.error(t); } finally { if (ooStream != null) { try […]