JAVA字符流和字节流

Java IO 的一般使用原则 :   
一、按数据来源(去向)分类:  
1 、是文件: FileInputStream, FileOutputStream, ( 字节流 )FileReader, FileWriter( 字符 )  
2 、是 byte[] : ByteArrayInputStream, ByteArrayOutputStream( 字节流 )  
3 、是 Char[]: CharArrayReader, CharArrayWriter( 字符流 )  
4 、是 String: StringBufferInputStream, StringBufferOuputStream ( 字节流 )StringReader, StringWriter( 字符流 )  
5 、网络数据流: InputStream, OutputStream,( 字节流 ) Reader, Writer( 字符流 )  

二、按是否格式化输出分:

二、按是否格式化输出分:  
1 、要格式化输出: PrintStream, PrintWriter  
三、按是否要缓冲分: 
 
1 、要缓冲: BufferedInputStream, BufferedOutputStream,( 字节流 ) BufferedReader, BufferedWriter( 字符流 )  
四、按数据格式分:  
1 、二进制格式(只要不能确定是纯文本的) : InputStream, OutputStream 及其所有带 Stream 结束的子类  
2 、纯文本格式(含纯英文与汉字或其他编码方式); Reader, Writer 及其所有带 Reader, Writer 的子类  
五、按输入输出分: 

输入: Reader, InputStream 类型的子类  
2 、输出: Writer, OutputStream 类型的子类  
六、特殊需要:  
1 、从 Stream 到 Reader,Writer 的转换类: InputStreamReader, OutputStreamWriter  
2 、对象输入输出: ObjectInputStream, ObjectOutputStream

IO分两种流 

字节流 InputStream OutputStream 

字符流 Reader  Writer 

他们都是抽象类 

具体实现 
字节流 FileInputStream  FileOutputStream 
字符流 FileReader    FileWriter 


字节流转换成字符流可以用 InputSteamReader  OutputStreamWriter 

转换成BufferdReader  BufferedWriter 他们具有缓冲区 

例如:读取文件 从字节流输入到字符流输入 
定义一个字节流: 

Java代码  收藏代码
  1. FileInputStream fileInputStream = new FileInputStream("d:/text.txt");  // 定义一个指向D:/TEXT.TXT 的字节流  
  2.   
  3. InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);  
  4. //字节流转换成InputStreamReader  
  5.   
  6. BufferedReader bufferedReader = new BufferedReader(inputSteamReader);  
  7. //InputStreamReader 转换成带缓存的bufferedReader  


可以把读出来的内容赋值给字符 
Java代码  收藏代码
  1. String ss = new String();  
  2. String s;  
  3. while((s = bufferedReader.readLine())!=null){  
  4.     ss += s;  
  5. }  

例如:写入文件  从字节流输出到字符流输出 
Java代码  收藏代码
  1. FileOutputStream fileOutputStream = new FileOutputStream("d:/text.txt"); //定义一个  
  2.   
  3. 指向D:/TEXT.TXT文件   
  4.   
  5. OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream);  
  6.   
  7. BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);  
  8.   
  9. bufferedWriter.write(s);  
  10.   
  11. bufferedWriter.close();  
  12. outputStreamWriter.close();  
  13. fileOutputStream.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值