File
含义:代表文件或文件夹
作用:可以使用代码创建,删除,修改等文件操作
使用:
1,创建File对象
File(String pathName); pathName:文件路径
File(URI uri); uri:文件的资源定位符(统一资源定位符 也被称为 网页地址 )
File(File parent,Sring child) parent:文件或文件夹的上一级文件夹 child:当前文件或文件夹名称(要加后缀)
File(String parent,String child) parent:文件或文件夹的上一级文件夹路径 child:当前文件或文件夹名称(要加后缀)
注意: 相对路径:在Eclipse中相对的是当前项目下的位置 ..上一级 .当前目录
绝对路径 从盘符开始书写到文件所在位置
路径分割符: File.separator:获取当前系统的路径分割符如
File file4 = new File("D:"+File.separator+"JAVASHIXI"+File.separator+"CordE"+File.separator+"test6666");
2,对文件进行操作
创建文件 file对象.createNewFile(); 注意:如果文件存在创建失败不会删除再重建
创建文件夹 file对象.mkdir();创建一级文件夹 file对象.mkdirs();创建多级文件夹(建议使用)
删除文件或文件夹 file对象.delete(); 注意:
1,只能删除空文件夹
2,在多级路径时,只删除最后一个,在多级文件夹中对文件所有的操作都是针对最后一个
修改文件名称: file.renameTo(File file)
查询:
查询文件字节数:length()
查询文件绝对路径:getAbsolutePath()
查询文件名称:getName()
获取上级文件对象:getParent();
判断文件是否为文件夹:isDirectory()
判断文件是否为文件:isFile()
获取当前文件夹下所有文件与文件夹listFiles();
注意:文件过滤器与文件名称过滤器
package jichuways;
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
public class Test4 {
public static void main(String[] args) {
File file = new File("D:\\");
//以下是文件过滤器
// File[] files = file.listFiles(new FileFilter() {
// @Override
// public boolean accept(File pathname) {
// if (pathname.isDirectory()) {
// return true;//返回TRUE表示满足此条件的存储于文件数组里
// }
// return false;
// }
// });
// for (File f2 : files) {
// System.out.println(f2);
//
// }//文件过滤器相对于文件名称过滤器少提供了name需要pathname.getName()方法获取
//以下是文件名称过滤器
File[] files2 = file.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
if (name.equals("新建文件夹")) {
return true;
}
return false;
}
});
for (File file2 : files2) {
System.out.println(file2);
}
}
}
I/O流
作用:传输数据
如: 1,将文件中的数据传入程序中
2,将程序中的数据写入文件中
3,将内存中的数据读取到程序中
4,将程序中的数据写入到内存中 ... 可以理解为管道
分类:
按照流向分类
输入流
输出流
按照传输的最小单位
字节(Byte)流
字节流(*) 字节输入流
含义:将数据读取到程序中,
读取的数据最小单位为byte
Java中对应的类:InputStream(抽象类)
InputStream提供的方法:
int read():一次读取一个字节,返回值为读取到的字节数,返回值为-1表示读取结束
int read(byte[] b): 一次读取多个数据,到数组b中,返回值为本次读取到的字节数 最大读取的长度是数组b的长度 最小读取的长度为-1表示读取结束 本次读取是在上一次结束位置开始的
int read(byte b[], int off, int len) 一次读取多个数据,到数组b中,返回值为本次读取到的字节数 off:开始位置 len:存储几个字节的数据
void close():关闭输入流 倒着关
步骤:
1,创建输入流对象
2,准备工具 byte的字节数组 int的变量记录长度
3,循环读取数据
4,使用数据
字节输出流
含义:将程序中的数据写入到指定位置,
写入的最小单位为byte
Java中对应的类:OutputStream(抽象类)
OutputStream提供的方法:
void close():关闭输出流
void flush():冲刷(防止数据残留)
void write(int b):一次写入一个字节的数据
void write(byte b[]):将数组中的数据写入到指定位置
void write(byte b[], int off, int len):将数组中的从off位置开始,写入len个 字节的数据到指定位置
常用子类:
文件流
FileInputStream:文件输入流 作用:将文件中的数据读取到程序中
FileOutputStream:文件输出流 作用:将程序中的数据写入到文件中
案例: 实现文件的拷贝
内存流
ByteArrayInputStream 作用:将内存中的数据读取到程序中 ByteArrayOutputStream 作用:将程序中写入到内存中 特有方法: toByteArray();将内存中的数据转换为字节数组
缓冲流
作用:提高效率
是包装流
BufferedInputStream:缓冲字节输入流
构造函数: BufferedInputStream(InputStream in):缓冲区默认为8kb BufferedInputStream(InputStream in,int size): 二参为自定义的缓冲区大小,单位b
BufferedOutputStream:缓冲字节输出流 构造函数: BufferedOutputStream(out):缓冲区默认为8kb BufferedOutputStream(out, size) 二参为自定义的缓冲区大小,单位b
对象流
作用:将对象作为数据进行传递
是包装流
ObjectInputStream
特有方法: readObject():读取一个对象
ObjectOutputStream
特有方法: writeObject():写入一个对象
注意:读取或写入的对象,需要现实序列化接口.存储的对象的属性的数据类型也必须实现序列化接口
字符(Char)流
传输的最小单位char(字符)
父类 Reader:字符输入流父类
提供方法:
int read():一次读取一个字符
int read(char[] cbuf):一次读取一组字符
int read(char[] cbuf, int off, int len)
void close()
Writer:字符输出流父类
提供的方法:
void write(int c)
void write(char cbuf[])
void write(char cbuf[], int off, int len)
void write(String str)
void flush()
void close()
常用子类:
文件流 FileReader
FileWriter
转换流
将字节输入流(InputStream)转换为字符输入流(Reader)
将字符输出流(Writer)转换为字节输出流(OutputStream)
InputStreamReader
OutputStreamWriter 注意:后期一些方法只需要字符流,此时就需要使用转换流将字节流转换后使用
缓冲流
BufferedReader
特有方法: readLine():一次读取一行
BufferedWriter: 特有方法: newLine():写入换行
标准流:
PrintStream:标准输出流
按照功能分类
节点流
包装流
序列化
实现Serializable接口的类,就是实现序列化
注意: 1,static或transient(瞬时)修饰的属性不会参与序列化
2,使用对象流存储对象,对象必须实现序列化,包含对象的属性也要
3,使用对象流存储对象后,在使用对象流读取对象,对象对应的类不能发生改变
网络
概念:
计算机之间练习的路线
协议:
http,https www(万维网)
ipv4
特殊ip:127.0.0.1(localhost)表示本机
ipv6
ip:计算机在互联网的地址 0~255.0~255.0~255.0~255
端口:软件在计算机中的地址 0~65535
inetAdress
含义:
计算机在互联网中的地址相关信息
获取对象:
获取本机:static InetAddress getLocalHost()
获取别的:
static InetAddress getByName(指定的计算机可以写ip,网址,设备名称)
static InetAddress getAllByName(指点那个计算机信息)
提供方法:
getHostName()获取设备名称
getHostAddress():获取地址
Tcp/Ip
特点: 面向有连接的,安全的,速度慢 三次握手,四次挥手
核心:
服务端
作用:接收处理客户端的请求
关系:一个服务器可以对应多个客户端
对应的类:ServerSocket
客户端
作用:接收用户或服务器的数据并处理
对应的类:Socket
流程: 客户端发送请求到服务器,服务器接收客户端传递的数据,并处理,返回信息给客户端
UDP
特点: 面向无连接的,不安全的,速度快
问题: 丢包(数据丢失)
socket(套接字)
即网络编程
网络编程的协议分为TCP UDP