📄 day15.txt
字号:
core java day15 --- 李艳
IO流:
1、对文件操作用:FileInputStream
2、读行:BufferedReader
3、写一个字符串:DataOutputStream,PrintStream,
read(byte[] b)--->InputStream
read(char[] c)--->Reader
write(byte[] b)--->OutputStream
write(char[] c)--->PrintWriter
文件分割器:
1、界面--->JFrame 1个,JButton 3个--3个Action,JTextField 2个,FileDialog 1个,JLabel
2、事件处理
1)打开文件:
a 显示文件对话
b 如果选择,setText();
2)分割
大---->小(n个)
FileInput --->1个
FileOutput--->n个
3)合并
n--->1个
Input---->1个文件对应1个,n-->n
Output--->1wh
网络编程
InetAddress---IP地址
ServerSocket---服务套接字,主要是用来等客户连接
Socket----套接字,用来通信
引入一种输入方式(客户端),Swing图形界面,System.in键盘流
多线程+网络:
1、服务器端的(1)等待客户连接的代码while(true)
(2)服务器端与单个客户端交互的代码,放入线程体(run)
2、客户端如有其它要求,与服务器交互代码也要放入线程体
3、ServerSocket,Socket编码基于TCP/IP协议,重发一切错误数据,对性能有影响
4、Server:
1、new ServerSocket,启动等待连接的线程(while(true){accept();})
2、在accept后启动交互线程,与客户端用流交互。
3、交互时注意对应关系:读写流对应,次数对应。
java.net.URL:网址--->统一资源定位器,
java.net.URLConnection:与网址相接、交互
1、new URL
2、openConnection,得到URL Connection
3、getInputStream()-->InputStreamReader---BufferedReader
UDP用户数据报,无连接,不重发,不保证数据完整,速度快,客户间无影响。
TCP/IP----像挂号信一样,不允许丢。
UDP-----平信,丢就丢了
UDP的实现类:
DatagramSocket(邮递员-->连接 ),DatagramPacket(信--->数据)
UDP编程步骤
send()
发送--->DatagramSocket(可以无参)-------------->DatagramPacket(需要IP,port)
receive()
接收-->DatagramSocket(需要port)--------------> DatagramPacket(不需要IP)
常用类库:
java.lang.*:
System 系统
Object 对象
clone()
equals()
hashCode()
toString()
Class 类
String/StringBuffer/StringBuilder 与字符串相关的
Thread 线程
所有的封装类
java.util.*:
Set--->HashSet,TreeSet
List--->ArrayList
Map--->HashMap(线程安全,不支持空),HashTable(线程不安全,支持空)
Collections--->外同步
Properties
Date
观察者-->Observable,接口Observer
数据结构+工具类
java.sql.*: 后面马上会讲到,JDBC
java.awt/swing.*:没什么机会用到
java.io.*: 流相当的多
File/FilenameFilter
Serializable 对象序列化接口
注意:写一个类要考虑的事情:1、无参构造器,2、实现序列化接口,3、重写equals,hashCode
FileInputStream
FileOutputStream
InputStreamReader
PrintStream
BufferedReader
nio包
java.net.*: 以后JSP,Servlet用的时候这个包都已经写好了
InetAddress--->IP地址
URL----------->网址
URLConnection---->连接
ServerSocket,Socket----TCP/IP
DatagramSocket,DatagramPacket----UDP
一些零散的类:
Comparable(可比较的),Comparator(比较器)
java.math.*;数字在商业软件中应用时找这个包
BigDecimal
与反射相关的:java.lang.reflect: 用的机会比较少
Runtime(运行环境),Process(进程) ,这两个在java.lang包里,用了这些就不能跨平台了,而且效率低
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -