IO_01

1Java文件系统管理

java.io.File用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录。

File类只用于表示文件(目录)的信息(名称、大小等),不能对文件内容进行访问。

2File代表文件系统中对文件/目录的管理操作(增删改查,CRUD)

常用API方法:

File(String)指定文件名的构造器

long length()

long lastModified()

String getName()

String getPath()

boolean exists()

boolean dir.isFile()

boolean mkdir()

boolean mkdirs()

boolean delete();

boolean createNewFile() throw IOException

FIle[] listFile()

3回调模式和FileFilter

FileFilter类是对操作文件的过滤,相当于命令:ls|grep patten

API方法:File[] listFile(FileFilter)

listFile()方法会将dir中每个文件交给accept()方法检测,如果返回true,就作为方法的返回结果元素

增强循环(foreach循环):JDK5提供的简化版for循环

回调模式:accept()方法的调用属于回调模式

4RandomAccessFile

RandomAccessFile类是Java提供的功能丰富的文件内容访问类,它提供了众多方法来访问文件内容,既可以读取文件内容,,也可以向文件输出数据,RandomAccessFile支持"随机访问"方式,可以访问文件的任意位置。

1)Java文件模型

在硬盘上文件时byte by byte存储的,是数据的集合

2)打开方式

有两种模式"rw"读写、"r"只读

RandomAccessFile raf = new RandomAccessFile(file,"rw")

打开文件时候默认文件指针在开头 pointer = 0

3)写入方法

raf.write(int)可以将整数的"低八位"写入到文件中,同时指针自动移动到下一个位置,准备再次写入

再次写入注意,文件名的扩展名要明确规定,没有默认扩展名现象

RandomAccessFile raf = new RandomAccessFIle("Hello.java","rw");

4)读取文件

int b = raf.read() 从文件中读取一个byte(8位)填充到int的低八位,高24位为0,返回值正数0~255,如果返回-1表示读取到了文件末尾!每次读取后自动移动文件指针,准备下一次读取。

5)文件读写完成以后一定要关闭文件

Sun官方说明,如果不关闭,可能遇到一些意想不到的错误,根据具体操作平台不同会有不同,在使用过程中,切记文件读写完成后要关闭文件。

5序列化与基本类型序列化

1)将类型转换为4个byte,或将其它数据类型(如long->8 byte)的过程,即将数据转换为n个byte序列叫序列化(数据->n byte)0x7fffffff->[7f ff ff ff ]

2)反序列化,将n byte转换为一个数据的过程(n byte->数据)

3)RandomAccessFile 提供基本类型的读写方法,可以将基本类型数据序列化到文件或将文件内容反序列化为数据


/********************** SN8P2501B 4M __interrupt IntIn() StartOneTImeSample(void) **********************/ typedef struct { unsigned char u8WihtchIOCharge; unsigned long u16ChargeTimeIo; // unsigned long u16ChargeTimeHumi; // }ChargeTyPe; #define CHARGE_HUMIDITY_IO_HIGH() FP21 = 1 #define CHARGE_HUNIDITY_IO_LOW() FP21 = 0 #define CHARGE_IO_HIGH() FP20 = 1 #define CHARGE_IO_LOW() FP20 = 0 #define CHARGE_IO_HI() P2M = 0X00 #define F_data 20 __interrupt IntIn() { WDTR = 0X5A; // T0C = F_data; m_st_ChargeType.u8WihtchIOCharge++; if(m_st_ChargeType.u8WihtchIOCharge&0x80) // { if(m_st_ChargeType.u8WihtchIOCharge >= 0x84) // 3:1 { CHARGE_HUNIDITY_IO_LOW(); m_st_ChargeType.u8WihtchIOCharge = 0x80; } else if(m_st_ChargeType.u8WihtchIOCharge >= 0x81) { CHARGE_HUMIDITY_IO_HIGH(); } } else { if(m_st_ChargeType.u8WihtchIOCharge == 0x01)// { CHARGE_IO_HIGH(); } else if(m_st_ChargeType.u8WihtchIOCharge == 0x04)// 3:1 { CHARGE_IO_LOW(); m_st_ChargeType.u8WihtchIOCharge = 0x00; } } m_st_ChargeType.u16ChargeTimeIo++; FT0IRQ = 0; //clear t0 irq flag } void StartOneTImeSample(void) { CHARGE_IO_HI(); //P1 m_st_ChargeType.u16ChargeTimeIo = 0; // if(m_st_ChargeType.u8WihtchIOCharge&0x80) { FP21M = 1; // CHARGE_HUNIDITY_IO_LOW(); } else { FP20M = 1; // CHARGE_IO_LOW(); } delay1N(2); // T0C = F_data; // FT0ENB = 1;// // while(1) { if(FP22) // { FT0ENB = 0;// , if(m_st_ChargeType.u8WihtchIOCharge&0x80)// { m_st_ChargeType.u16ChargeTimeHumi = m_st_ChargeType.u16ChargeTimeIo; } break; } } P2M = 0X23; P2 = 0X00;// FP22M = 1; FP22 = 0; delay1N(100); FP22M = 0; }
07-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值