一、文件:文件可认为是相关记录或放在一起的数据的集合。
注意:
a.文件存储硬盘中
b.Java提供操作文件的API,位于java.io包中。
二、使用File类操作文件的步骤:
1.创建File类的对象:一个File类的对象关联一个文件或者目录(文件夹)
File file=mew File("文件的路径");
2.使用文件对象的方法操作文件
exists() 判断文件是否存在
isFile() 判断是不是文件
isDirectory() 判断是不是目录
getPath() 获取文件的路径
getName() 获取文件的名称
delete() 删除文件
createNewFile() 创建文件
mkdir() 创建文件夹
length() 获取文件大小以字节为单位
listFiles() 获取目录下所有文件
三、流技术(Stream)
作用:用于读写文件
1.流:流是指一连串流动的字符,是以先进先出方式发送信息的通道。
2.流的分类
2.1按流向区分:
输出流(写文件):OutputStream和Wrtier作为基类
输入流(读文件):InputStream和Reader作为基类
2.2按照处理数据单元划分:
字节流:OutputStream和InputStream作为基类
字符流:Reader和Wrtier作为基类
注意:字节流是8位通用字节流,字符流是16位Unicode字符流。
3.读写文件的步骤
3.1.创建相应的流对象
3.2.进行相应的读写操作
read方法就是读
write方法就是写
3.3.关闭流对象
四、使用字节流读写文件
1.使用FileInputSteam读文件和FileOutputStream写文件
2.示例:使用FileOutputStream写文件
String str="读写文件!";
//将字符串转化为字节数组
byte [] bs=str.getBytes();
try {
//1.创建FileOutputStream对象
//FileOutputStream fos=new FileOutputStream("d:\\text.txt");
FileOutputStream fos=new FileOutputStream("d:\\text.txt",true); //表示追加
//2.进行写入操作
//fos.write('a'); //一次写入一个字符
fos.write(bs); //写入字节数组
//3.关闭流对象
fos.close();
System.out.println("写入成功");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
3.示例 // 使和FileInputStream读文件
try {
//1.创建流对象
FileInputStream fis=new FileInputStream("D:\\text.txt");
//2.进行读取操作
//一次读取一个 //读不到返回-1
//int math=fis.read();
//循环读取所有内容
/*int temp;
while((temp=fis.read())!=-1) {
System.out.println((char)temp);
}*/
//以字节数组方式读取 //fis.available()获取源文件大小
byte bs[]=new byte[fis.available()];
fis.read(bs);
//将字节数组转化为字符串
String str=new String(bs);
System.out.println(str);
//3.关闭
fis.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
其它:
1.字符串与字节数组之间的转换
1.1.将字符串转化为字节数组
String str="哈哈:我会使用Steam流写入数据啦!";
byte [] bs=str.getBytes();
1.2将字节数组转化为字符串
String str=new String(bs);