IO流
文件操作:
使用java.io.File类来创建一个文件对象
File file = new File(文件绝对路径);
File对象的常用方法:
exists(): 判断文件是否存在,返回boolean类型
isFile(): 判断是否为文件,返回boolean类型
isDirectory(): 判断是否为文件夹,返回boolean类型
getPath(): 得到文件的相对路径,返回String类型
getAbsolutePath():得到文件的绝对路径,返回String类型
getName(): 获得文件的文件名,返回String类型
length(): 获得文件的字节大小,返回long类型
delete(): 删除文件或文件夹,返回boolean类型
createNewFile():创建一个文件
mkdir(): 创建一个文件夹
listFiles(): 获取文件夹中的所有文件【包含子文件夹】
流:流是指一连串流动的字符,是以先进先出方式发送信息的通道,所有的流都是java.io包下面的
流是用来传输数据的,文件读取也是传输数据的一种方式。
流的分类:
按流向划分:输入流/输出流(这里的输入流与输出流是相对于内存而言)
按内容划分:字符流/字节流(字节流是1个字节8位,字符流是2个字节16位)
按形式划分:实体流/装饰流(实体流可以直接处理数据源,装饰流必须要与其他实体流结合起来才能使用)
字符流:
通常都是继承自Reader类和Writer类,一个是读,一个是写,常用的子类是FileReader和FileWriter
字节流:
通常是继承InputStream类与OutputStream类,一个是输入流,一个是输出流,常用的子类有FileInputStream、FileOutputStream
这里大家需要死记住一个点:
流是成对出现的,它们的子类也是成对的,很少会出现单个,比如:
InputStream OutputStream
Reader Writer
FileReader FileWriter
BufferedReader BufferedWriter
DataInputStream DataOutputStream
使用流读文件:
//第一步:创建输入流
InputStream input = new FileInputStream(文件对象或文件路径字符串);
//第二步:读文件
byte[] bytes = new byte[1024]; //每次读取1KB,大小可以自己设
StringBuffer s = new StringBuffer(""); //用来存储读取出来的数据
int len = input.read(bytes); //读文件,返回读到的长度
while(len >= 0){ //循环,如果长度>=0,说明读到了内容
//将读到的内容放到事先准备的字符串里
s.append(new String(bytes,0,len));
len = input.read(bytes); //继续读
}
//第三步:关闭流
input.close();
System.out.println(s.toString());
使用流写文件:
//第一步:创建输出流
OutputStream output = new FileOutputStream(文件对象或是文件路径字符串);
//第二步:写文件
String content = "内容...";
output.write(content.getBytes());
//第三步:清空缓存并关闭流
output.flush();
output.close();
使用字节流读写文件与上类似,如果是读,则先创建Reader对象,如果是写则先创建Writer对象,然后分别调用read()方法或是write()方法即可。
String类的用法
扩展:
一.equals和==区别
1.equals比较的是内容是否相等
2.==比较的是地址是否相等
3.注意:如果字符串是常量则在常量池中保存,再创建一个常量,先去常量池找,如果存在则直接指向,所以地址相同
二.字符串的常用方法
1.length():获取长度
2.equals():比较两字符串是否相等
3.equalsIgnoreCase():忽略大小写比较是否相等
4.toUpperCase():转大写
5.toLowerCase():转小写
6.trim():去字符串左右两边的空格
7.indexOf():获取第一次出现的位置,从0数
8.lastIndexof():获取最后一次出现的位置
9.indexOf(参数1,参数2):参数1:要查找的对象
参数2(int类型):从哪里开始找
9.substring(int a,int b):截取字符串
a:从什么位置开始截取(从0数)
b:到什么位置结束(从1数)
10.trim():去字符串左右两边的空格
11.split(String a):拆分
a:通过a字符来拆分,拆完后返回String[]类型
三.StringBuffer:是String的增强版
a.创建:StringBuffer 变量名=new StringBuffer(值);
b.append():连接,追加(直接在原件上追加)
String的concat():在副本上追加,原件不发生变化
例:String str="aa";
str.concat("bb");
输出str的结果:aa
c.StringBuffer和String互相转换
将String转StringBuffer
StringBuffer sb =new StringBuffer("值");
将StringBuffer转String
String ss=sb.toString();
d.insert(int index,object obj):在指定的index位置插入字符;(第一个参数,指定的位置,第二个参数插入的字符)
变量和数据类型
基本数据类型:int short long float double char boolean byte
引用数据类型:String 数组 类
带参数的方法
一、参数
1.参数列表(形参)前面需要加数据类型
public void addName(String name,String name1,...){....}
2.调用的时候是传递实参,实参列表无需加数据类型
stu.addName("TKK","",....);
3.实参列表和形参列表的数量要一致
4.实参列表和形参列表数据类型要一一对应
5.实参列表和形参列表的顺序要保持一致
二、包
1.作用:a.管理文件
b.解决文件的命名冲突,同一个项目中两个相同的文件可以存在不同的包中
c.保护包中的文件(要使用不同包中的文件,必须