字节
用于计量存储容量的一种计量单位,通常情况下一字节等于八位, 也表示一些计算机编程语言中的数据类型和语言字符。
在计算机中,我们知道,所有的一切都是归根到底都是二进制的字节形式,包括文件,字符串等等。所以在写程序的时候,尝尝需要和字节打交道。
例如:我们需要把一个字符串写入到文本文件中,我们就需要借助字节这个中间的单位来进行处理。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| @Test public void stringToFile() throws Exception { String name = "Test"; byte[] bytes = name.getBytes(); FileOutputStream fileOutputStream = new FileOutputStream("D:/test.txt"); fileOutputStream.write(bytes); fileOutputStream.close(); }
``` 当然同样的,从文件到字符串也是离不了字节这个单位:
``` Java
@Test public void fileToString() throws Exception { FileInputStream fileInputStream = new FileInputStream("D:/test.txt"); byte[] inByte = new byte[100]; fileInputStream.read(inByte); String str=new String(inByte); System.out.println(str); }
|
以上我们可以用下面的模型图来表示:
流是什么?
从上面的代码中,我们可以看到,有一个 FileInputStream ,FileOutputStream这两个流的对象,对于这个对象我们怎么理解?
流是一个字节转移的介质,如同用吸管喝水,水是字节的集合的文件,吸管就是流。
输入流:顾名思义,就是从外界到程序中的介质。
输出流:对外界进行输出的介质
Java 中常用的输入流和输出流:
字符流
什么是字符流?用什么用?
还是用喝水来说,我们怎么获得吸管里面水的属性?我们比如获得吸管中某一段水的重量怎么获得?
字符流是流的一种工具,是能够获得流中的单个字节单位的工具。
对应的是Reader和Writer.
我们可以把流转成Reader和Writer工具,来进行处理我们的文件和字节:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| @Test public void streamWriteTest() throws Exception { FileInputStream fileInputStream = new FileInputStream("D:/test.txt"); InputStreamReader reader = new InputStreamReader(fileInputStream); char[] ch =new char[100]; reader.read(ch); System.out.println(ch); }
```
``` Java
@Test public void streamTest() throws Exception { String str = "test"; FileOutputStream fileOutputStream = new FileOutputStream("D:/Test.txt"); OutputStreamWriter writer = new OutputStreamWriter(fileOutputStream); writer.write(str.toCharArray()); writer.close(); }
|
整个的过程入如下: