2020.11.4

一、今日学习内容:

今天主要也是对文件与流知识的学习:

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类来处理编码问题。

二、遇到的问题:

字符编码问题不太明白。

三、明日学习计划:

继续文件与流的学习。

原文地址:https://www.cnblogs.com/marr/p/14176397.html