数据输入/输出流与字节转换流

 一.数据输入/输出流

 1 /**
 2  *   数据输入输出流
 3  * 类说明
 4  *     1.public class ByteArrayOutputStream extends OutputStream
 5  *          该类实现了将数据写入字节数组的输出流。 当数据写入缓冲区时,缓冲区会自动增长。
 6  *          数据可以使用toByteArray()和toString() 。    
 7  */
 8 import java.io.ByteArrayInputStream;
 9 import java.io.ByteArrayOutputStream;
10 import java.io.DataInputStream;
11 import java.io.DataOutputStream;
12 import java.io.IOException;
13 
14 public class TestDateStream {
15     public static void main(String[] args) {
16         ByteArrayOutputStream baos=
17                 new ByteArrayOutputStream();
18         /*
19          * 数据输出流使应用程序以便携式方式将原始Java数据类型写入输出流。 
20          * 然后应用程序可以使用数据输入流来读取数据。 
21          */
22         DataOutputStream dos=
23                 new DataOutputStream(baos);
24         try {
25             //输出一个随机数
26             dos.writeDouble(Math.random());
27             //输出一个Boolean类型的随机数
28             dos.writeBoolean(true); 
29             /*
30              * toByteArray()创建一个新分配的字节数组。 其大小是此输出流的当前大小,
31              * 缓冲区的有效内容已被复制到其中。
32              * 字节数组输入流的长度就等于字节数组输出流的长度
33              */
34             ByteArrayInputStream bais=
35                 new ByteArrayInputStream(baos.toByteArray());
36             //available() 返回可从此输入流读取(或跳过)的剩余字节数。
37             System.out.println(bais.available());
38             DataInputStream dis = new DataInputStream(bais);
39             System.out.println(dis.readDouble());
40             System.out.println(dis.readBoolean());
41             dos.close(); dis.close();
42         } catch (IOException e) {
43             e.printStackTrace();
44         }
45     }
46 }


 二.字节转换流

 1 import java.io.FileNotFoundException;
 2 import java.io.FileOutputStream;
 3 import java.io.IOException;
 4 import java.io.OutputStreamWriter;
 5 
 6 public class TestTransForm {
 7     public static void main(String[] args){
 8         try {
 9             //确定输出目的文件
10             OutputStreamWriter osw = new OutputStreamWriter(
11                     new FileOutputStream("C:/Users/罗摩衔那/Desktop/write.txt"));
12             //被输出字符流数据
13             osw.write("mircosoftibmsunapplehp");
14             //getEncoding() 
15             //返回此流使用的字符编码的名称。 
16             System.out.println(osw.getEncoding());
17             osw.close();
18             //true代表在原来的基础之上进行追加,否则会被擦除
19             osw=new OutputStreamWriter(
20                     new FileOutputStream("C:/Users/罗摩衔那/Desktop/write.txt",true),"ISO8859_1");
21             osw.write("mircosoftibmsunapplehp");
22             System.out.println(osw.getEncoding());
23             osw.close();
24         } catch (IOException e) {
25             e.printStackTrace();
26     }
27 }
28 }

 

posted @ 2018-12-20 15:22  静心*尽力  阅读(253)  评论(0编辑  收藏  举报