一、今日学习内容:
今天主要也是对文件与流知识的学习:
1、按分隔符读取字串
Scanner类有一个useDelimiter方法,可以指定分隔符(以正则表达式方式表达,如果不指定,则默认是空格),然后以这个分隔符去切割字串。
示例设置一文本文件的内容为逗号或“ ^”分隔的字串,程序读取并显示它。 Scanncer在底层使用了BufferredReader读取数据。
2.流的转换:
InputStreamReader和OutputStreamWriter可以将字节流转换为字符流。
将System.In(InputStream类型的实例)转换为字符输入流BufferedReader的实例,从而可以一次从键盘读取一行。
3.内存流:
使用ByteArrayInputStream和ByteArrayOutputStream两个类将Byte数组作为读写源头和目的地。
4、重定向标准输入/输出
System.in和System.out代表系统的标准输入和输出。
System提供了以下方法将其重定向
public static void setOut(PrintStream out);
public static void setIn(InputStream in);
5.Buffer:
Buffer是内存中的一块可用于数据存取的区域。 Buffer可以随机定位并存取数据,拥有以下控制字段:
6.Channel:
Channel可以将文件映射为Buffer。 不允许直接访问Channel,必须通过Buffer来“间接”地访问它。
有多种类型的Channel。象前面中随机存取文件,就可以使用SeekableByteChannel类实现。
Demo: FileChannelTest.java
Demo:RandomFileChannelTest.java
7、字符编码问题:
Java中的字符编码采用UNICODE字符集,但有些操作系统会采用其他的字符集,因此,需要解决字符编码转换的问题。
JDK使用Charset类来处理编码问题。
二、遇到的问题:
字符编码问题不太明白。
三、明日学习计划:
继续文件与流的学习。