大家可以根据下面的主要提纲来复习这些知识点,效果会蛮好的,不会漏掉知识点。
关于IO流部分
1.File 中的常用get方法
|-- getName()获取文件名,或者是文件夹名
|-- getAbsolutePath()获取的是绝对路径
|-- getParent()获取父路径
|-- getgetPath()获取路径
2.递归
|-- 方法的运算方式,自己调用自己
|-- 从前有个山,山里有个庙,庙里有个老和尚讲故事,讲的是,从前有个山......
|-- 递归在我们的IO技术中的应用
3.管道流
|-- 是字节流的子类
|-- 管道流需要进行连接
|-- 读取管道流和写出管道流分别用不同的线程去控制
|-- 读取流会等待希写出管道流,不会引发线程死锁,不会抛出读取异常
4.打印流-- 只操作数据目的,不操作数据源
|-- PrintStream 字节流
|-- File对象
|-- 字节输出流
|-- 字符串
|-- PrintWriter 字符流
|-- File对象
|-- 字节输出流
|-- 字符串
|-- 字符输出流
|-- 使用打印流的自动刷新
|-- 构造方法,ture
|-- printf() println() format()
|-- 在做JAVAEE开发时,服务端程序,将数据写回到客户端,用的就是PrintWriter
|-- 这个流不需要你创建,已经建好了 Tomcat服务程序运行,直接拿这个对象用就OK了
|-- PrintWriter out = response.getWriter();
|-- out.print();
5. Properties
|-- 键值对形式的配置文件,可以和反射结合,实现配置文件配什么类,运行什么类
|-- load,和读取流关联,读取配置文件
|-- store,和输出流管理,修改配置文件
6. 做一个限制运行的小程序和Properties结合使用,训练的是IO和Properties的结合使用
功能描述:已经有一个了,当运行三次后,第四次不运行,提醒你给钱
1. 程序首次运行的时候获取配置文件中的键值信息
File f = new File("c:\\123.txt");
if(!f.exists())
f.createNewFile();
Reader r = new FileReader(f);
load(r)
String s = getP("count")
int i = In.parese(s);
if(i>3){
sop(交钱);
}
else{
new SS().run()
}
class SS{
void run(){}
}
获取不到,值是null。创建一个配置文件,值1
2. 再次运行的时候,获取键了,对值++
3. 对值进行判断 值是string
if(value>3){
提示你需要交钱购买
}else{
调用程序运行方法
}
GUI
1. Frame窗体
|-- 构造方法(标题)
|-- setBounds(x,y,width,height)
|-- setVisible(true)
|-- setLayout(null)取消了布局,所有其他组件必须定义位置和尺寸
|-- add()添加组件
|-- setMenuBar()为窗体添加菜单
2. Button
|-- 构造方法(标题)
|-- setBounds(x,y,width,height)
3. TextField 单行
|-- 构造方法(标题)
|-- setBounds(x,y,width,height)
|-- String getText()获取文本框内的内容
|-- void setText()设置文本框的内容
4. TextArea 多行,有滚动条
|-- 构造方法(标题)
|-- setBounds(x,y,width,height)
|-- String getText()获取文本框内的内容
|-- void setText()设置文本框的内容
5. Label 文本标签
|-- 构造方法(标题)
|-- setBounds(x,y,width,height)
6. Dialog 对话框
|-- 构造方法(属于哪个窗体,标题,模式 true)
|-- setVisible(true)
7. FileDialog
|-- 构造方法(属于哪个窗体,标题,模式 save load)
|-- setVisible(true)
|-- String getDirectory()获取选中的目录
|-- String getFile()获取选中的文件名
8. MenuBar
|-- 添加到窗体中
|-- Menu
|-- 添加到MenuBar
|-- MenuItem
|-- 添加到Menu
|-- 子菜单
|-- 将Menu添加到Menu
9. 事件监听器
|-- 窗体事件 WindowListener
窗体.addWindowListener(new 窗体适配器(){
覆盖需要的方法
});
|-- 鼠标事件 MouseListener
按钮.addMouseListener(new 鼠标适配器(){
覆盖需要的方法
});
|-- 键盘事件 KeyBordListener
|-- 活动事件 ActionListener
10. 记事本写一遍
网络编程
1. UDP
|-- 面向无连接
|-- 非安全协议
|-- 效率高
|-- 传输限制大64K
2. TCP
|-- 面向连接
|-- 安全协议
|-- 效率低
|-- 传输大数据
3. UDP案例--多线程群聊,写一遍
|-- 发送端
|-- 建立DatagramSocket服务
|-- 构造方法 DatagramSocket();
|-- 封装数据包 DatagramPacket(字节数组,0,长度,发送目的IP,端口号)
|-- DatagramSocket服务的方法 send(数据包)
|-- 关闭资源
|-- 接收端
|-- 建立DatagramSocket服务
|-- 构造方法 DatagramSocket(10000);
|-- 定义字节数组,存储接收的数据
|-- 将数组封装到数据包中DatagramPacket(数组,长度)
|-- DatagramSocket服务的receive(数据包)
|-- 获取数据
|-- 关闭资源
4. TCP 案例 图片上传 写一遍
|-- 客户端
|-- 建立、Socket服务
|-- 通过Socket建立IO流
|-- 客户端想服务端发送消息, OutputStream out = s.getOutputStream
|-- 客户端接收服务端发的消息 InputStream in = s.getInputStream
|-- 服务端
|-- 建立、ServerSocket服务
|-- 获取客户端连接对象 Socket s = ss.accept()
|-- 通过客户端对象获取IO流
|-- 服务端想客户端发送消息, OutputStream out = s.getOutputStream
|-- 服务端获取客户端消息 InputStream in = s.getInputStream
|-- Socket对象 shutdownOutput 告诉服务端客户端没有数据了
5. TCP任务
|-- 将现有的程序进行改造,变成一个服务器可以同时服务多个客户端的上传,利用多线程
|