草庐IT

bufferedreader

全部标签

java - 套接字,BufferedReader 卡在 readLine()

我有一个服务器最初是这样做的:-BufferedReaderbr=newBufferedReader(newInputStreamReader(s.getInputStream()));for(;;){StringcmdLine=br.readLine();if(cmdLine==null||cmdLine.length()==0)break;...}稍后它将套接字传递给另一个类“foo”此类等待特定于应用程序的消息。BufferedReaderbr=newBufferedReader(newInputStreamReader(s.getInputStream()));appCmd=b

java - 是否有 BufferedReader.readLine() 的等价物让我选择我的行尾字符是什么?

BufferedReader.readLine()的Javadoc说:Alineisconsideredtobeterminatedbyanyoneofalinefeed('\n'),acarriagereturn('\r'),oracarriagereturnfollowedimmediatelybyalinefeed.我需要比这更好的控制(例如,我希望能够指定行尾是“\r\n”,以便“\n”本身不会终止该行)。是否有任何JDK或库函数可以执行此操作? 最佳答案 尝试使用Scanner类:Stringline=Scanner(fi

java - 如何在 Java 中使用 BufferedReader 读取文件结尾(EOF)?

我在Java中读取输入直到EOF时遇到问题。在这里,有单个输入,输出考虑每一行的输入。示例:输入:12345输出:01010但是,我使用Java编写代码,当我输入两个数字时,将打印单个输出。我想在Java中使用BufferedReader单输入并在每一行打印单输出(终止EOF)。这是我的代码:BufferedReaderinput=newBufferedReader(newInputStreamReader(System.in));StringBufferpr=newStringBuffer("");Stringstr="";while((str=input.readLine())!=

java - 关闭 BufferedReader/PrintWriter 是否会关闭套接字连接?

我有一个应用程序使用简单的套接字在两个系统之间传递一些字符。我有我的java应用程序作为服务器运行。我建立了良好的连接,甚至传递了一条消息。但是,在发送一条消息后,我的连接将关闭。据我所知,似乎在关闭printWriter和bufferedReader时套接字本身正在关闭?!这很糟糕,因为我要在同一个连接上发送多条消息。printWriter=newPrintWriter(theServer.getClientSocket().getOutputStream());bufferedReader=newBufferedReader(newInputStreamReader(theServ

python - 在 Python2 中从 sys.stdin 制作 io.BufferedReader

如何从标准文件对象(如sys.stdin或您从“打开”中获得的内容)创建BufferedReader对象?(背景:我需要一个peek()方法,标准文件对象无法拥有该方法。也欢迎任何解决此问题的建议。)我本以为这会起作用,但事实并非如此:>>>importsys>>>importio>>>io.BufferedReader(sys.stdin)Traceback(mostrecentcalllast):File"",line1,inAttributeError:'file'objecthasnoattribute'readable'(这是Python2.7)哈,明白了,至少对于任何有文件

java - 在 while 循环中正确使用 BufferedReader.readLine()

所以我在将文本文件读入我的程序时遇到了问题。代码如下:try{InputStreamfis=newFileInputStream(targetsFile);BufferedReaderbr=newBufferedReader(newInputStreamReader(fis));//while(br.readLine()!=null){for(inti=0;i我正在读取的文件是100行参数。如果我使用for循环,它会完美运行。如果我使用while语句(在for循环上方注释掉的那个),它会在50处停止。用户有可能使用具有任意行数的文件运行程序,因此我当前的for循环实现不会没用。为什么w

java - BufferedReader 和 BufferedInputStream 的区别

BufferedReader、BufferedInputStream、Scanner在java中有什么区别?BufferedReader读取文本,BufferedInputStream读取byte。除此之外还有什么不同吗? 最佳答案 我猜,阅读器和输入流之间的区别是一样的:一个是基于字符的,另一个是基于字节的。比如阅读器一般支持编码...编辑:检查这个问题:ThedifferencebetweenInputStreamandInputStreamReaderwhenreadingmulti-bytecharacters

java - 使用 BufferedReader 读取所有行

我想使用BufferedReader在控制台中键入多行文本,然后按“Enter”来查找整个文本长度的总和。问题是我似乎进入了一个无限循环,当我按下“Enter”时,程序并没有结束。我的代码如下:InputStreamReaderinstream=newInputStreamReader(System.in);BufferedReaderbuffer=newBufferedReader(instream);line=buffer.readLine();while(line!=null){length=length+line.length();line=buffer.readLine();

java - Java 中 BufferedReader.readLine() 的最大行长?

我使用BufferedReader的readLine()方法从套接字读取文本行。没有明显的方法来限制读取的行长度。我担心数据源可能(恶意或错误地)写入大量数据而没有任何换行符,这将导致BufferedReader分配无限量的内存。有没有办法避免这种情况?还是我必须自己实现readLine()的有界版本? 最佳答案 最简单的方法是实现您自己的有界线阅读器。或者更简单,重用thisBoundedBufferedReaderclass中的代码.实际上,编写一个与标准方法工作相同的readLine()并非易事。正确处理3种行终止符需要一些非

java - BufferedReader 中的标记和重置是什么?

我想知道BufferedReader的mark()和reset()方法是什么?我该如何使用它们?我阅读了Javadoc,但作为初学者我无法理解它。 最佳答案 流的mark和reset方法提供了一种在流中向后跳转并重新读取数据的方法。当您在BufferedReader上调用mark()时,它将开始将您从该点读取的数据向前保存在其内部缓冲区中。当您调用reset()时,它会跳回到流的标记位置,因此下一个read()将由内存缓冲区满足。当您读取该缓冲区的末尾时,它将无缝返回读取新数据。BufferedInputStream的工作方式相同。