一.Flie类
(1)概述:java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作
重点记住: file 文件 directory 文件夹 path 路径
(2)构造方法 public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例。
public File(File parent, String child) :从父抽象路径名和子路径名字符串创建新的 File实例。
(3)
绝对路径,相对路径;
绝对路径:从盘符开始的路径,这是一个完整的路径。
相对路径:相对于项目目录的路径,这是一个便捷的路径,开发中经常使用。
获取功能的方法:
(4)public String getAbsolutePath() :返回此File的绝对路径名字符串。
public String getPath() :将此File转换为路径名字符串。
public String getName() :返回由此File表示的文件或目录的名称。
public long length() :返回由此File表示的文件的长度
(5)判断功能的方法:
public boolean exists() :此File表示的文件或目录是否实际存在。
public boolean isDirectory() :此File表示的是否为目录。
public boolean isFile() :此File表示的是否为文件
(6)文件的删除和创建
public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。
public boolean delete() :删除由此File表示的文件或目录。
public boolean mkdir() :创建由此File表示的目录。
public boolean mkdirs() :创建由此File表示的目录,包括任何必需但不存在的父目录
总结:创建文件必须在已经存在的目录中创建,不会帮我们创建文件夹,删除文件夹,不会删除存有文件的文件夹,必须先删除文件,才能删除文件。
二.递归
(1)递归:值在当前方法内调用自己的这种现象
分类:直接递归和间接递归
注意事项:注意事项:
递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。
在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。
构造方法,禁止递归
一.IO流
(1)根据数据的流向分为:输入流和输出流。
输入流 :把数据从 其他设备 上读取到 内存 中的流。
输出流 :把数据从 内存 中写出到 其他设备 上的流。
(2)格局数据的类型分为:字节流和字符流。
字节流 :以字节为单位,读写数据的流。
字符流 :以字符为单位,读写数据的流
(3)顶级父类们:字节输入流InputStre 字节输出流OutputStream 字符输入流Reader 字符输出流Writer
二..字节输出流【OutputStream】
(1).字节输出流的基本共性功能方法:
public void close() :关闭此输出流并释放与此流相关联的任何系统资源。
public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。
public void write(byte[] b) :将 b.length字节从指定的字节数组写入此输出流。
public void write(byte[] b, int off, int len) :从指定的字节数组写入 len字节,从偏移量 off开始输出到此输出流。
public abstract void write(int b) :将指定的字节输出流。
(2)FileOutputStream
1.写出字节: write(int b) 方法,每次可以写出一个字节数据
2.写出字节数组: write(byte[] b) ,每次可以写出数组中的数据
3. 写出指定长度字节数组: write(byte[] b, int off, int len) ,每次写出从off索引开始,len个字节,
(3)数据追加续写(true 则不覆盖重写,而是续写,false 则覆盖重写)数据追加续写Windows系统里,换行符号是 \r\n
三.字节输入流【InputStream】
(1).基本共性功能方法:
public void close() :关闭此输入流并释放与此流相关联的任何系统资源。
public abstract int read() : 从输入流读取数据的下一个字节。
public int read(byte[] b) : 从输入流中读取一些字节数,并将它们存储到字节数组 b中
(2).FileInputStream类
FileInputStream是文件输入流,从文件中读取字节
(3).读取字节数据
1.读取字节: read 方法,每次可以读取一个字节的数据,提升为int类型,读取到文件末尾,返回 -1
2. 使用字节数组读取: read(byte[] b) ,每次读取b的长度个字节到数组中,返回读取到的有效字节个数,读取到末尾时,返回 -1
四.字符流
(1).字符输入流【Reader】
public void close() :关闭此流并释放与此流相关联的任何系统资源。
public int read() : 从输入流读取一个字符。
public int read(char[] cbuf) : 从输入流中读取一些字符,并将它们存储到字符数组 cbuf中
(2)FileReader类
FileReader 类是读取字符文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。
(3)读取字符数据
1.读取字符: read 方法,每次可以读取一个字符的数据,提升为int类型,读取到文件末尾,返回 -1 ,循环读取
2. 使用字符数组读取: read(char[] cbuf) ,每次读取b的长度个字符到数组中,返回读取到的有效字符个数,读取到末尾时,返回 -1
(4)字符输出流【Writer】
void write(int c) 写入单个字符。
void write(char[] cbuf) 写入字符数组。
abstract void write(char[] cbuf, int off, int len) 写入字符数组的某一部分,off数组的开始索引,len写的字符个数。
void write(String str) 写入字符串。
void write(String str, int off, int len) 写入字符串的某一部分,off字符串的开始索引,len写的字符个数。
void flush() 刷新该流的缓冲。
void close() 关闭此流,但要先刷新它
五.IO异常的处理:用 try...catch...finally 代码块,处理异常部分
六.Properties类
public Object setProperty(String key, String value) : 保存一对属性。
public String getProperty(String key) :使用此属性列表中指定的键搜索属性值。
public Set<String> stringPropertyNames() :所有键的名称的集合。
一.缓冲流
(1)缓冲流,也叫高效流,是对4个基本的 FileXxx 流的增强,所以也是4个流,按照数据类型分类:
字节缓冲流: BufferedInputStream , BufferedOutputStream
字符缓冲流: BufferedReader , BufferedWriter
缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。
(2)字节缓冲流 (继承父类的所有方法)
public BufferedInputStream(InputStream in) :创建一个 新的缓冲输入流。
public BufferedOutputStream(OutputStream out) : 创建一个新的缓冲输出流
使用步骤:1.创建FileOutputStream对象,构造方法中传递写入数据的目的地
2.创建BufferedOutputStream对象
3.使用write方法
4.释放资源
一.网络编程入门
(1)软件结构
C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。
B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。
网络编程:就是在一定的协议下,实现两台计算机的通信的程序。
(2)网络通信协议
网络通信协议:通信协议是对计算机必须遵守的规则,只有遵守这些规则,计算机之间才能进行通信。
TCP/IP协议: 传输控制协议/因特网互联协议是Internet最基本、最广泛的协议。它定义了计算机如何连入因特网,以及数据如何在它们之间传输的标准。
(3)协议分类
TCP:传输控制协议 (Transmission Control Protocol)。TCP协议是面向连接的通信协议,即传输数据之前,在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。
三次握手:TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠 发出请求->回送响应->确认链接
UDP:用户数据报协议(User Datagram Protocol)。UDP协议是一个面向无连接的协议。传输数据时,不需要建立连接,不管对方端服务是否启动,直接将数据、数据源和目的地都封装在数据包中,直接发送。每个数据包的大小限制在64k以内。它是不可靠协议,因为无连接,所以传输速度快,但是容易丢失数据。
(4)网络编程三要素
1.协议:计算机网络通信必须遵守的规则
2.IP地址:指互联网协议地址 IPv4 IPv6
3.端口号:用两个字节表示的整数,它的取值范围是0~65535(0-1024无法使用,已被分配给已知的网络软件)。端口号是唯一标识设备中的进程(应用程序)
利用 协议 + IP地址 + 端口号 三元组合,就可以标识网络中的进程了,那么进程间的通信就可以利用这个标识与其它进程进行交互。
二.TCP通信程序
(1)TCP通信能实现两台计算机之间的数据交互,通信的两端,要严格区分为客户端(Client)与服务端(Server)。
服务器使用客户端的流和客户端交互。
(2)Socket类
Socket 类:该类实现客户端套接字,套接字指的是两台设备之间通讯的端
构造方法:public Socket(String host, int port) :创建套接字对象并将其连接到指定主机上的指定端口号。如果指定的host是null ,则相当于指定地址为回送地址 |
|