20175205 2018-2019-2 《Java程序设计》第六周学习总结
教材学习内容总结
教材学习中的问题和解决过程
Q:不知道怎么在IDEA上开启断言
A:Run
- > Edit Configurations
-> VM options
输入 -ea
Q:教材第十章例子四,有关String类的方法String(a,0,n)不太懂
A:a是把一个字节数组a从0取到n,取出来之后转换成String类型
Q:教材第十章例子五,getBytes()方法没有接触过
A:String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。这个表示在不同情况下,返回的东西不一样。存储字符数据时,会先进行查表,然后将查询的结果写入设备,读取时也是先查表,把查到的内容打印到显示设备上,getBytes()是使用默认的字符集进行转换,getBytes(“utf-8”)是使用UTF-8编码表进行转换。
Q:教材例子六为什么只关闭了输出流而没有关闭输入流
A: 。。。还没有得到解答
Q:在使用Scanner解析文件时,使用正则表达式作为分隔符,如何写出正则表达式"[^0123456789.]+"
A:[^abc]
匹配除了abc以外的任意字符
+
(懒惰) 重复一次或更多次,例如"aaaaaaaa" 匹配字符串中所有的a 正则: "a+" 会取到字符中所有的a字符, "a+"与"a"不同在于"+"至少是一次而"" 可以是0次,
代码调试中的问题和解决过程
Q:在IDEA中运行结果所显示的字节数和书上的不同
A:不同的编码格式占字节数是不同的,UTF-8编码下一个中文占3字节。
Q:在字符输入,输出流遇到一段代码,不知道flush的作用
out.flush();
out.close();
A:flush()这个函数是清空的意思,用于清空缓冲区的数据流,进行流的操作时,数据先被读到内存中,然后再用数据写到文件中,那么当你数据读完时,我们如果这时调用close()方法关闭读写流,这时就可能造成数据丢失,因为,读入数据完成时不代表写入数据完成,一部分数据可能会留在缓存区中。
代码托管
总结
这两章让我学的头大,新的类和方法十分多,学完之后方法有些混淆,因此我对所学过的内容做了一个总结。
-
所有输入流类都是抽象类InputStream(字节输入流),或者抽象类Reader(字符输入流)的子类;
而所有输出流都是抽象类OutputStream(字节输出流)或者Writer(字符输出流)的子类。-
字节输入流
-
字节输出流
-
字符输入流
-
字符输出流
-
-
具体用法
-
字节输入输出流
-
字符输入输出流
-