如何将read()
in中返回的整数转换BufferedReader
为实际字符值,然后将其附加到String?将read()
返回一个代表字读整数。当我这样做时,它不会将实际字符附加到字符串中。而是将整数表示形式本身附加到String。
int c;
String result = "";
while ((c = bufferedReader.read()) != -1) {
//Since c is an integer, how can I get the value read by incoming.read() from here?
response += c; //This appends the integer read from incoming.read() to the String. I wanted the character read, not the integer representation
}
我应该怎么做才能读取实际数据?
刚投到c
一个char
。
另外,不要使用过+=
一个String
在一个循环。它是O(n ^
2),而不是预期的O(n)。使用StringBuilder
或StringBuffer
代替。
int c;
StringBuilder response= new StringBuilder();
while ((c = bufferedReader.read()) != -1) {
// Since c is an integer, cast it to a char.
// If c isn't -1, it will be in the correct range of char.
response.append( (char)c ) ;
}
String result = response.toString();
这是我的代码 字符串构造函数不接收int,只接收字节数组.我看了文件上面说 read():从输入流中读取下一个字节的数据。
问题内容: 我有一个TCP套接字客户端,它从服务器接收消息(数据)。消息的类型为长度(2个字节)+数据(长度字节),由STX和ETX字符分隔。 我正在使用bufferedReader来检索前两个字节,对长度进行解码,然后再次从同一bufferedReader中读取适当的长度,并将结果放入char数组中。 在大多数情况下,我都没问题,但是有时(收到的数千条消息中有1条),当尝试从读取器读取(长度)字
据我所知,缓冲阅读器比非缓冲阅读器优化了很多,因为每次读取都将从内存中完成,不需要每次都从磁盘/网络进行I/O读/写。 所以我在这里阅读答案: 缓冲读取器和文件读取器之间的特定区别 我被第二个答案弄糊涂了,这个答案似乎有很高的票数: 当向BufferedReader对象发出“read”指令时,它会使用FileReader对象从文件中读取数据。当给出指令时,FileReader对象一次读取2(或4)
Paypal开始从沙盒返回此URL:
我有一个简单的方法 每当我运行代码时,我都会收到插入电影名称的第一个提示,但是一旦我按下回车键,就会调用第二个打印,给我这个消息。 该文件已写入,但我无法在文本文件中插入任何内容。我的逻辑有什么问题,我该如何解决这个问题?我在Ruby我和Ubuntu中使用irb。 编辑:看起来,由于其他用户对我的代码工作的反应,以及我自己在另一台开发机器上的测试,我的代码在这台机器上无法工作。我唯一能说的是我在使
问题内容: 我已经使用过返回一定数量的行。我的代码是这样的: 有没有什么方法可以检查返回的行数?还是我必须自己写? 问题答案: 您可以使用循环而不是循环,以便在执行循环后调用该循环,如下所示: 或自己计算行数: