IO与文件笔记

一、File

1.1、

//通过路径指向了磁盘的一个资源
File file = new File("c:\\temp\\abc");

1.2、

//创建文件或目录
file.createNewFile();//建文件
file.mkdir();//建目录
file.mkdirs();//建目录(连同父目录一起创建)

1.3、

//判断文件是否存在
if(file.exists()){}
//判断是否是文件或目录
file.isFile();
file.isDirectory;

1.4、

//删除文件
file.delete();
file.deleteOnExit();

File中只提供了操作文件或者属性的一些方法,如果想读写数据,应该借助IO。

二、IO

IO是java中提供的一种用于读写文件的API。
2.1、字节流
(1)FileOutPutStream 写数据

FileOutPutStream fs = new FileOutPutStream("c:\\temp\\abc");
/*====逐个写入====*/
fs.write(97);
fs.write(98);
fs.write(99);
//最后文本输出结果是'abc'
/*====多个写入====*/
byte[] data = {65,66,67};
fs.write(data);
//最后结果是'ABC'
/*====写入中文====*/
String Str = "Hello你好";
byte[] dataStr = str.getBytes();
fs.write(dataStr)
//关闭输出流
fs.close();

(2)FileInPutStream 读数据

FileInPutStream fis = new FileInPutStream("c:\\temp\\abc");
/*====逐个读取====*/
int data = -1;//字节流读到末尾的标志值是-1
while((data=fis.read())!=-1){
    System.out.println(data);
}
/*====多个读取====*/
byte[] temp = new byte[10];
int length = -1;
while((length=fis.read(temp))!=-1){
    System.out.println(Arrays.toString(temp));
}

(3)BufferedOutPutStream 缓冲输出流

FileOutPutStream fs = new FileOutPutStream("c:\\temp\\abc");
BufferedOutPutStream bos = new BufferedOutPutStream(fs);
bos.write(97);
Thread.sleep(10000);
bos.flush();//刷新缓冲
bos.close;

(4)ObjectOutPutStream 序列化(把对象写入IO)

//先把一个Obj对象实现Serializable接口
Obj o = new Obj();
o.setXX("");
ObjectOutPutStream oos = new ObjectOutPutStream(new FileOutPutStream("c:\\temp\\abc"));
oos.writeObject(o);
oos.close();

(5)ObjectInPutStream 反序列化(从IO中读取对象)

ObjectInPutStream ois = new ObjectInPutStream(new FileInPutStream("c:\\temp\\abc"));
Obj o = (Obj)ois.readObject();
ois.close;

2.2、字符流
(1)BufferedWriter 写数据

BufferedWrite bw = new BufferedWrite(new FileWrite("c:\\temp\\abc"));
bw.write("写入数据");
bw.newLine();//换行
bw.close();

(2)BufferedReader 读数据

BufferedReader br = new BufferedReader(new FileReader("c:\\temp\\abc"));
//读取一行
String line_1 = br.readLine;
//读取多行
while((line_1 = br.readLine())!=null){
    System.out.println(line_1);
}
br.close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值