- 浏览: 1139029 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (240)
- javascript (24)
- Struts (3)
- Hibernate (9)
- spring (3)
- 学海无涯 (45)
- jstl (4)
- java (21)
- js (4)
- Ajax (2)
- 开源框架-ajax (1)
- oracle spring (38)
- unix (6)
- 美国骆驼 American Camel 骆驼皮鞋 骆驼正品 (0)
- android (1)
- BIEE (16)
- informatica (13)
- 触摸屏 (1)
- 诈×骗×电话 (4)
- 远程桌面无法连接 (1)
- 旅游 (3)
- 生活 (8)
- hp6531s (2)
- oracle (6)
- 短信病毒 (1)
- 手机诈骗 短信病毒 (3)
- 骗子 (3)
- ultraedit (1)
- sql2008 (0)
- 苏宁易购大骗子 苏宁易购二手当新品卖 苏宁易购以次充好 苏宁易购您还敢下单吗 (0)
- 苏宁易购二手当新品卖 (0)
- informatica etl (5)
- etl (8)
- NoClassDefFoundError: com/opensymphony/xwork2/util/classloader/ReloadingClas (1)
- mysql (2)
- jquery ajax post (1)
- jason (1)
- json (1)
- struts2 (1)
- jsp 文本编辑器 (2)
- beyond compare (1)
- svn (3)
- EAS BOS (3)
- tapestry5 (1)
- obiee (3)
- java dll (2)
- office (1)
- kettle 8.2 org.gjt.mm.mysql.Driver (1)
最新评论
-
JianCaesar:
oracleStr2Clob,为什么要用反射,直接调用不可以吗 ...
java String和Clob转换 -
vip_gg:
...
邮件失败!javax.mail.AuthenticationFailedException: 535 Error: authentication -
cherryQQ:
我把敏感的用*号代替啦,这样可以了吧,等你加一个号,等着租房子 ...
**同城租房需要加房东的微*号 -
sam.sheng.3:
dream80 写道是的,这个主要就是二步验证的问题,很多人不 ...
AttributeError: can't set attribute -
ooo456mmm:
不错
oracle job 定时执行 存储过程
最近写代码时发现用BufferedReader把InputStream包装后,使用BufferedReader读取后,然后再使用 InputStream读取时总是发现问题,好像总是丢数据,由于我在流里面同时混了二进制数据与字符串,所以很不好调度,然后专门写了下面的代码去测试发现原来是. BufferedReader读取数据时会把数据从流里面取出一部分缓存,如果你再转向去用InputStream去读取的话,BufferedReader缓存里面的数据InputStream是读取不到的 .
package bytearray;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class TestByteArray {
public byte[] generateByte() {
// 构造一个测试流,这样就不用从文件里面读取了,在这个流里面使用了大量的回车换行("\r\n"),这样方便过会的测试
// 过会,我会通过把字符串转换成byte数组,然后通过ByteArrayInputStream来构造一个数据流
return "a\r\nbc\r\ndef\r\nghi\r\nj\r\nklmn\r\nopqr\r\ns\r\ntuvwxyz "
.getBytes();
}
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
TestByteArray self = new TestByteArray();
byte[] be = self.generateByte();
InputStream in = new ByteArrayInputStream(be);
BufferedReader bufferReader = new BufferedReader(new InputStreamReader(
in));
// 使用DataInputStream而不直接使用Inputstream是因为这样方便,因为他提供了读取行
// 不过听说他读取行时把字节转变为字符时会有问题,所以不推荐使用,不过我们在这只做测试就没关系了
DataInputStream dataInputStream = new DataInputStream(in);
// 先读取流里面的一行数据
System.out.println("bufferReader=" + bufferReader.readLine());
// 回过头来使用dataInputStream读取数据,会发现什么也读取不到
System.out.println("dataInputStream=" + dataInputStream.readLine());
// 回过头来使用inputstream读取数据,会发现什么也读取不到
System.out.println("in=" + in.read());
// InputStream读取不到数据,然后再使用原来的BufferedReader来读取数据,发现是接着原来读取的.
System.out.println("bufferReader=" + bufferReader.readLine());
//我们上面的字符串比较小,我想如果字符串,大到缓存装不下的时候,使用inputstream回头去读取数据,肯定是能读取到的
//这个我就不测试了
}
}
package bytearray;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class TestByteArray {
public byte[] generateByte() {
// 构造一个测试流,这样就不用从文件里面读取了,在这个流里面使用了大量的回车换行("\r\n"),这样方便过会的测试
// 过会,我会通过把字符串转换成byte数组,然后通过ByteArrayInputStream来构造一个数据流
return "a\r\nbc\r\ndef\r\nghi\r\nj\r\nklmn\r\nopqr\r\ns\r\ntuvwxyz "
.getBytes();
}
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
TestByteArray self = new TestByteArray();
byte[] be = self.generateByte();
InputStream in = new ByteArrayInputStream(be);
BufferedReader bufferReader = new BufferedReader(new InputStreamReader(
in));
// 使用DataInputStream而不直接使用Inputstream是因为这样方便,因为他提供了读取行
// 不过听说他读取行时把字节转变为字符时会有问题,所以不推荐使用,不过我们在这只做测试就没关系了
DataInputStream dataInputStream = new DataInputStream(in);
// 先读取流里面的一行数据
System.out.println("bufferReader=" + bufferReader.readLine());
// 回过头来使用dataInputStream读取数据,会发现什么也读取不到
System.out.println("dataInputStream=" + dataInputStream.readLine());
// 回过头来使用inputstream读取数据,会发现什么也读取不到
System.out.println("in=" + in.read());
// InputStream读取不到数据,然后再使用原来的BufferedReader来读取数据,发现是接着原来读取的.
System.out.println("bufferReader=" + bufferReader.readLine());
//我们上面的字符串比较小,我想如果字符串,大到缓存装不下的时候,使用inputstream回头去读取数据,肯定是能读取到的
//这个我就不测试了
}
}
发表评论
-
java webservice 接口调用
2018-09-29 15:11 19820import javax.xml.namespace.QNa ... -
java读取gz内容中文乱码
2018-06-13 15:22 1159在java读取gz压缩包的时候发现只有部分中文出现乱码 ... -
Windows server 2008下计划任务无法正常执行
2017-07-21 09:55 1436在Windows server 2008 ... -
java mysql插入数据库中文变问号解决之道
2017-07-15 23:51 16061、my.ini 设置:utf-8 2、creat ... -
java 获取当月第一天和最后一天 获取前一个月第一天和最后一天
2011-07-06 15:03 117461SimpleDateFormat format ... -
java 将json形式的字符串转为json对象 json
2010-03-24 20:59 2749import java.io.*; import ... -
StringUtils StringUtils.leftPad
2010-02-25 11:49 5468这么好用的方法,第一次在系统里面看到,真的感到有点遗憾,在 ... -
ibatis Cause: java.sql.SQLException: ORA-00917: 缺失逗号
2010-02-01 22:03 6375ibatis Cause: java.sql.SQLExcep ... -
org.exolab.castor.xml.MarshalException: The following exception occured while va
2010-01-06 20:24 1896org.exolab.castor.xml.MarshalEx ... -
java String和Clob转换
2009-06-26 17:27 21166第一时间想到spring,因为spring对orm工具有封装 ... -
让人讨厌的双精度类型:doubleNum = 7.9007751E7 怎么转化为stringNum
2009-06-15 17:21 2748每次从excel 中读取保存到数据库中,都会是双精度型的,晕死 ... -
java解析txt文件获取文件列数
2009-06-13 12:00 3804public class TestLine { ... -
java解析txt文件 inputStream流 Struts解析txt文件
2009-06-13 11:53 6205注意:在用到struts中的Form 读取文件的时候,可以使用 ... -
java 判断字符串含有数字
2009-06-11 00:07 7400java中判断字符串是否为数字的三种方法 1用JAVA自带的 ... -
操作Dom4j xml
2009-05-07 17:47 1171Parsing XML 或许你想要做的第一件事情就是 ... -
Set和List区别
2009-05-06 22:04 1729java.util包中 Set 和 List 的区别 对于Se ... -
如何遍历map的主键
2009-04-20 11:09 2922如何遍历一个HashMap 以下是两种方法遍历HashMap ... -
javaMD5加密
2009-03-25 17:01 1955import java.security.Messag ... -
oracle java解析excel
2009-03-25 16:17 1493import java.io.FileInputStream; ... -
java float转换int
2009-02-18 14:46 542011.Java的简单类型及其 ...
相关推荐
服务器端可能使用`BufferedReader`从`Socket`的`InputStream`读取客户端发送的数据,而客户端则可能使用它从标准输入或文件读取要发送的数据。 10. **源码阅读** 如果想要深入理解`BufferedReader`的工作原理,...
下面将深入解析此代码中的关键知识点,包括`BufferedReader`的用途、如何创建及使用它,以及与之相关的流操作。 ### 关键知识点一:`BufferedReader`类 `BufferedReader`是Java标准库中的一个类,位于`java.io`包...
在实际应用中,我们通常会将`BufferedReader`与`InputStreamReader`一起使用,将字节流转换为字符流。例如,在读取文件时,我们先创建一个`FileInputStream`对象,然后通过它创建一个`InputStreamReader`,最后将`...
与`BufferedReader`类似,`BufferedWriter`内部也有一个缓冲区,可以批量写入字符到目标,减少了磁盘I/O的次数。当我们调用`write()`方法时,字符不会立即写入目标,而是先存入缓冲区,等到缓冲区满或者调用`flush()...
1. `InputStream`与`OutputStream` `InputStream`是所有字节输入流的基类,用于读取原始字节数据。例如,我们通常用它来从文件、网络或内存中读取数据。相对应的,`OutputStream`是所有字节输出流的基类,用于向各种...
通过使用 `BufferedReader`,程序可以在每次调用读取方法时从缓冲区中获取更多的字符,从而减少系统调用的次数,提高整体性能。 #### 二、创建 BufferedReader 实例 在创建 `BufferedReader` 对象时,通常需要传入...
BufferedReader 开发的结构
本主题主要关注使用`InputStream`类来解析CSV文件,尤其适合处理大型文件,如含有超过10万行的CSV。 在Java中,`InputStream`是所有字节输入流的基础类,用于读取连续的字节序列。在处理大型CSV文件时,直接使用`...
BufferedReader 是缓冲字符输入流。它继承于Reader。 BufferedReader 的作用是为其他字符输入流添加一些缓冲功能。
将InputStream转化为String,一般使用BufferedReader读取InputStream中的每一行并拼接到StringBuffer中,最后返回其toString()的结果。另外,也可以通过ByteArrayOutputStream来读取InputStream,然后将其转换为...
2、常用21个IO流:FileWriter、FileReader、CharArrayReader、CharArrayWriter、CharSequence、OutputStreamWriter、FileOutputStream、InputStreamReader、PrintWriter、BufferedReader、InputStream、...
与 `BufferedReader` 相比,`Scanner` 更加方便和直观。 #### 2. 构造方法 `Scanner` 提供了多个构造方法: - `Scanner(InputStream source)`: 创建新的扫描器,以读取指定的输入流。 - `Scanner(File file)`: 创建...
BufferedReader的用法---马克-to-win java视频缓存输入流的介绍
没有堵塞,客户端和服务端简单的信息传递,利用了BufferedReader读。
- `InputStreamReader(InputStream in)`: 使用系统默认的字符编码创建一个InputStreamReader对象,接收一个InputStream作为数据源。 - `InputStreamReader(InputStream in, String charsetName)`: 指定特定字符...
NULL 博文链接:https://chaoyi.iteye.com/blog/2084140
本文将深入探讨如何使用Java实现这一过程,同时涵盖异常处理、重复不终止输入以及`BufferedReader`的高效使用。 首先,了解字符编码至关重要。常见的编码方式有ASCII、ISO-8859-1、UTF-8、GBK等。每种编码都有其...
文件读写 BufferedReader BufferedWriter 去除代码后面空格 简单 readLine newLine flush
- 使用`BufferedReader`和`InputStreamReader`:首先,通过`InputStreamReader`将InputStream转换为字符流,然后使用`BufferedReader`逐行读取并拼接成字符串。 ```java InputStream is = ...; ...
Java中BufferedReader类获取输入输入字符串实例 Java中BufferedReader类...总结本文介绍了Java中BufferedReader类获取输入输入字符串实例,包括使用BufferedReader类的优点、使用方法和示例程序。希望对大家有所帮助。