JAVA自学教程之IO流(三):缓冲区2 & 装饰设计模式。
一、模拟BufferedReader
自定义MyBuffereaReader
对于缓冲区而言,里面其实就是封装一个数组,对外提供方法对数组的操作,这些方法最终操作的都是数组的角标
原理:从源中取出数据存入缓冲区,再从缓冲区不断的取出数据,取完后,继续从源中继续取数据,进缓冲区,直至源中的数据取完,用-1做为结束标记
- import java.io.*;
- class MyBufferedReader {
[......]
JAVA自学教程之IO流(三):缓冲区2 & 装饰设计模式。
一、模拟BufferedReader
自定义MyBuffereaReader
对于缓冲区而言,里面其实就是封装一个数组,对外提供方法对数组的操作,这些方法最终操作的都是数组的角标
原理:从源中取出数据存入缓冲区,再从缓冲区不断的取出数据,取完后,继续从源中继续取数据,进缓冲区,直至源中的数据取完,用-1做为结束标记
[......]
JAVA自学教程之 IO流(四)转换流。
一、键盘录入
System.out:标准输出设备,控制台
System.in:标准输入设备,键盘
输入演示
输入字符串遇到回车,打印,输入over,输入结束
PS:键盘的录入只读取一个字节,先将字节拼一个字符串,所以需要一个容器,再参与over的判断
[html] view plaincopy在CODE上查看代码片派生到我的代码片
import java.io.*;
public class Main
{
public static void main(String[] args) throws IOException {[......]
JAVA自学教程之IO流(五)流的操作基本规律。
转换流:
InputStreamReader:字节到字符的桥梁。解码
OutputStreamWriter:字符到字节的桥梁。编码
流的基本规律
1.明确源和汇
源:InputStream、Reader
汇:OutputStream、Writer
2.明确数据是否是纯文本数据
源:如果是,Reader,否,InputStream
汇:如果是,Writer,否,OutputStream
前两点明确后院,体系也就明确了
3.明确具体的设备
源设备:
硬盘:File[......]
JAVA自学教程之IO流(六)File对象。
File类
用来给文件或者文件夹封装成对象
方便对文件与文件夹的属性信息进行操作
File对象可以作为参数传递给流的构造函数
一、构造函数和分隔符
JAVA自学教程之IO流(七)File对象练习 & Properties集合。
一、练习
深度遍历文件夹
深度遍历很自然而然想到递归,而递归就很自然的想到其实现的底层算法是栈
对指定目录下列出所有内容(包含子目录的内容)
PS:建议不要遍历C盘
[html] view plaincopy在CODE上查看代码片派生到我的代码片
import java.io.*;
public class Main
{
public static void main(String[] args) throws IOException {
File dir = new Fi[......]
JAVA自学教程之IO流(八)打印流 & 序列流。
一、综合练习—文件清单列表
获取指定目录下,指定扩展名的文件(含子目录),并将这些文件的绝对路径写到一个文本文件中。也就是建立一个指定扩展名的文件列表
1.深度遍历
2.过滤器->容器
3.写入文件
JAVA自学教程之IO流(九)文件切割合成器实例源码。
文件切割器
[......]
JAVA自学教程之IO流(十)对象的序列化和反序列化 & RandomAccessFile。
操作对象
ObjectInputStream、ObjectOutputStream
被操作的对象需要实现Serializable(标记接口)
ObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream。可以使用 ObjectInputStream 读取(重构)对象。通过在流中使用文件可以实现对象的持久存储。如果流是网络套接字流,则可以在另一台主机上或另一个进程中重构对象。
对象的默认序列化机制写入[......]
JAVA自学教程之IO流(十一)
一、管道流
PipedInputStream 和 PipedOutPutStream
输入和输出可以直接进行连接,结合线程使用
管道流,顾名思义,写一个读一个,连成一个管子
API文档:管道输入流应该连接到管道输出流;管道输入流提供要写入管道输出流的所有数据字节。通常,数据由某个线程从 PipedInputStream
对象读取,并由其他线程将其写入到相应的 PipedOutputStream
。不建议对这两个对象尝试使用单个线程,因为这样可能死锁线程。管道输入流包含一个缓冲区,可在缓冲区限定的范围内将读操作和写操作分离开。如果向连[......]
JAVA自学教程之GUI。
GUI
Graghical User Interface(图形用户接口)
java为GUI提供的对象都存在java.awt和java.swing包中
Java的GUI做的的确干不过C++等,不打算浪费过多的时间在这上面
一个简单的窗体演示
[java] view plaincopy在CODE上查看代码片派生到我的代码片
public static void main(String[] args){
Frame f = new Frame(“新窗体”);
f.setLocation(400, 200);//设置窗体的位置
f.set[......]