20145338《Java程序设计》第6周学习总结
教材学习内容总结
在Java中,输入串流的代表对象为java.io.InputStream实例,输出串流代表对象为java.io.OutputStream实例。
取得InputStream或OutStream实例后,接下来操作输入/输出的方式都是一样的,无须理会来源或目的地的真正形式。
在不使用InputStream与OutputStream时,必须使用close()方法关闭串流。
由于InputStream与OutputStream操作了java.io.Closeable接口,其父接口为java.lang.AutoCloseable接口,因此可使用JDK7尝试自动关闭资源语法。
FileInputStream是InputStream的子类,可以使指定文件名创建实例,一旦创建文档就开启,接着就可用来读取数据。
FileOutputStream是OutputStream的子类,可以使指定文件名创建实例,一旦创建文档就开启,就可用来写出数据。
ByteArrayInputStream是InputStream的子类,可以指定byte数组创建实例,一旦创建就可将byte数组当做数组源进行读取。
ByteArrayOutputStream是OutputStream的子类,可以指定byte数组创建实例,一旦创建byte数组当做目的地写出数据。
要让目前流程暂停指定时间,可以使用java.lang.thread的静态sleep()方法,指定的单位是毫秒,调用这个方法必须处理java.lang.InterruptedException。
dump()方法接受Reader与Writer实例,分别代表读取数据的来源,以及输出数据的目的地。
FileReader是一种Reader,主要用于读取文档并将读到的数据转为字符。
StringWriter是一种Writer,可以将数据写至StringWriter,使用toString()方法取得字符串。
StringReader可以将字符串打包,当作读取来源。
StringWriter则可以作为写入目的地,最后用toString()取得所有写入的字符组成的字符串。
串流处理的字节数据,实际上代表某些字符的编码数据,可以使用InputStreamReader对其打包。
如果A线程正在运行,流程中允许B线程加入,等到B线程执行完毕后再继续A线程流程,则可以使用join()完成这个需求。
教材学习中的问题和解决过程
可不可以直接调用Thread类的run()方法?
可以,但是如果我们调用了Thread的run()方法,它的行为就会和普通的方法一样,为了在新的线程中执行我们的代码,必须使用Thread.start()方法。
如何让正在运行的线程暂停一段时间?
使用Thread类的Sleep()方法让线程暂停一段时间,需要注意的是,这并不会让线程终止,一旦从休眠中唤醒线程,线程的状态将会被改变为Runnable,并且根据线程调度,它将得到执行。
其他(感悟、思考等,可选)
感觉这周过的好快啊,大家都好忙,因为生病错过了很多节课 还错过了Java考试 感觉假期回来一直不在状态,希望自己赶快调整,往后的课越来越多希望自己能挺住。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第六周 | 500/500 | 9/30 | 20/20 |