本帖最后由 小石姐姐 于 2018-4-26 17:35 编辑
File类 描述文件或者文件夹的类 构造方法: File(String filePath) 通过制定路径创建File对象 File(File parent,String child) 首先获取parent(File对象路径),然后File对象路径下添加child路径 File(String parent,String child) 把parent和child拼接后创建File对象 字段: String File.separator 返回当前系统文件夹和文件夹之间的分隔符 Char File.separatorChar 返回系统路径文件夹分隔符char类型 String File.pathSeparator 返回系统默认名称分隔符 Char File.pathSeparatorChar 方法: boolean renameTo(File dest) 把当前传入路径的文件名称改成指定File对象传入的名称 boolean isAbsolute() 判断绝对路径,只是字符串判断,不会检查盘符 boolean isDirectory() 判断是不是目录 boolean isFile() 判断是不是一个文件 boolean isHidden() 判断是不是一个隐藏文件 boolean exists() 判断文件或目录存在返回true,否则false String getParent() 文件所在路径目录 File[] listFiles() 获取制定目录下的所有文件,每个文件是一个File[]元素 boolean delete() 删除文件或目录,如果删除目录保证目录下没有文件夹或文件 String getParent() 获取父路径字符串,必须和构造 File([String parent],String child) File getParentFile() 获取父路径File对象 String getName() 获取文件或文件夹的名称 String getPath() 获取文件全路径 long lastModified() 返回文件或文件夹最后一次修改时间,返回毫秒 文件流 标准输入输出流 输入流: InputStream System.in 输出流: OutputStream System.out 字符转换流 OutputStreamWriter/InputStreamReader OutputStreamWriter: 把传入的字符转换成流,写到文件中 InputStreamReader 接受字节,把字节转成字符 PrintStream打印流: 自带刷新和自动换行功能,但是必须保证已经打开这个功能并且调用println、print方法才可以 PrintStream(OutoutStream out,boolean) 输出流对象,是否启动自动换行和刷新 异常方法中有一个printStackTrace(PrintStream ps),可以利用PrintStream打印异常错误信息到日志文件中。 ObjectInputStream/ObjectOutputStream对象流 可以利用这流把对象的信息打印到文件中(序列化),保存下来。方便下一次读取 方法: writerObject(Object obj); readObject(Object obj) 序列化对象时必须保证对象实现了Serializable,并且尽量给对象类型添加编号 Serializable只起标识作用 Properties类 配置类,把配置信息保存到文件中 默认编码:ISO-8859-1 不能存中文,外国的编码 方法: put(Object o1,Object o2) 添加 setProperty(Object o1,Object o2) 添加 内部调用put 两种写出到配置文件方式 void list(PrintStrem out) void list(PrintWriter ) void load(Reader reader); void sort(Writer writer,String comments) 注意: list位置必须在添加(setProperty())之前,因为程序走到list(xx)会直接写入 编码表 ASCII 最早的码表 GB2312 支持中文码表 GBK GB2312升级版 Unicode 所有字符都占2个字符 UTF-8 Unicode升级版 ANSI 不是码表,是表示本地码表。(系统默认码表) 多线程 线程(Thread) 创建线程的两个办法 1. 继承Thread类 重写run方法 2. 实现Rannable接口 实现run方法 笔记: 尽量使用第二种方式,因为使用第二种方式还可以继承/实现其他类或接口 构造方法: Thread(Runnable target) 根据传入的实现Runnabl自定义类创建对象 Thread(Runnable target,String name) 传入Runnable自定义对象类后,设置线程名称为name Thread(String name) 创建线程时设置线程名称为name 方法: join() 等待当前线程完成后向下执行 线程池 线程池顶层接口:Executor 线程池接口:ExecutorService 配置一个线程池比较复杂,所以就有了Executors类 Executors线程池的具体实现类 静态方法: ExecuteService newSingleThreadExecutor() 创建一个线程 ExecuteService newFixedThreadPool(int nThreads) 创建一个固定大小线程池 ExecuteService newCachedThreadPool() 创建一个可缓存线程,如果线程池大小超过处理任务所需要的线程池大小,会回收60秒内在线程池中没有执行的线程,当任务增加时,线程池也会加大。 E cuteService newScheduledThreadPool() 创建一个无限大的线程池,支持定时和周期性执行任务需求 Socket TCP 传输控制协议 效率低,可靠 给发送端发送数据时,如果接受端接收到的信息不完整(发送端发送给目标后),发送端会自动重发数据 UDP 用户数据协议 把数据打包,效率高 ,不可靠 大小限制:最大包大小是64K IPV4:.号隔开,全是数字 IPV6:用:隔开,16进制,大写字母+数字 端口号: 端口号范围:0~65535 端口号是进程地址 InetAddress 方法: InetAddress[] getAllbyName(String host) 根据主机名,返回InetAddress数组(主机名有可能重名,所以是数组) InetAddress getByName(String host) 根据主机明或用户名获取IP String getByAddress(String host) 根据主机名获取IP InetAddress getLocalHost() 获取当前主机InetAddress对象 String getHostName() 获取当前对象主机名 String getHostAddress() 返回IP地址字符串 DatagramSocket 用来发送和接受数据 基于UDP协议 构造: DatagramSocket(int port) 设置端口 DatagramSocket(int port,InetAddress laddr) 设置端口,设置地址 方法: send(DatagramPacket p) 发送数据包 receive(DatagramPacket p) 接受数据包 DatagramPacket UDP数据包模型 构造: DatagramPakcet(byte[] bytes,int length) 数据字节数组,接受长度length包 DatagramPacket(byte[] bytes,int length,InetAddress address,int port) 数字字节数组,字节长度,地址对象,端口号 方法: byte[] getDate() 获取数据字节 int getLength() 数据包长度 int getPort() 获取发送方端口号 异常: java.net.BindException 端口号被绑定异常 Socket 基于TCP协议的Socket 构造方法: Socket(InetAddress add,int port) 根据IP地址和端口 Socket(Stirng address,int port) 根据字符类型IP和端口创建 ServerSocket TCP服务端 ServerSocket可以不管 构造方法: ServerSocket(int port) 服务端端口号 方法: Socket accept() 接收端,会堵塞 InputStream getInputStream() 返回标准输入流
|