第六周学习总结

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(字符输出流)的子类。

    • 字节输入流

    • 字节输出流

    • 字符输入流

    • 字符输出流

  • 具体用法

    • 字节输入输出流

    • 字符输入输出流

参考资料

原文地址:https://www.cnblogs.com/orii/p/10662191.html