io的读取和写出

1: wile(文件和目录路径名的抽象表示形式,file 类的实例是不可变的)
构造方法:

File(File parent,String child)

将指定的路径名转换成一个File对象
File(String pathname)
File f=new File("d:\\a\\b.txt",)

根据指定的父路径对象和文件路径创建File对象
File(String parent,String chaild)



2: File的常用功能:

A: 绝对路径: 固定路径不可改变的路径,以盘符开头
File f = new File("d:\\a\\b.txt");

相对路径: 相对某个参照物,不能以盘符开头.
File f2 = new File ("a.txt")
在eclipse中相对路径相对应当前项目的根目录


创建功能:
boolean createNewFile()  // 创建文件
当指定文件不存在时,创建文间夹并返回true,否则返回false

boolean mkdir() // 创建文件夹 make 
boolean mkdirs() //创建多层文件夹
创建指定文件夹,当文件夹所在的目录不存在, 顺便一块儿创建.
注意:创建文件,文件夹是根据方法来创建的

删除功能:

boolean delete() //既可以删除文件,也可以删除文件夹(只能是空文件夹)
当指定的文件或文件夹存在时删除文件或者文件夹,并返回true,否则返回false
注意: 删除一个文件夹,这个文件夹下面不能有去他的文件和文件夹.

获取功能:
File get AbsoluteFile() //返回的是File对象,
String getAbsolutepath() //返回的是字符串,返回File对象所指向的绝对路径
String getParent()
File get parentFile()

String getPath() //返回创建File对象时给的路径
String getName() //获取文件和文件夹的名称

long lastModified() //以毫秒值的形式返回最后修改的时间
long length() //返回的是File对象(文件)的字节数

判断功能:

boolean exists() //判断文件或文件夹是否存在.如果存在返回true,否则返回false
boolean isAbsolut() //判断File对象指向的路径是否是绝对路径,如果是绝对路径返回true,否则返回false
boolean isDirectory() //判断File对象指向的路径是否是文件夹,如果是返回true,否则返回false
boolean isFile() //判断File对象指向的路径是否是文件,如果是返回true,否则返回false
boolean isHidden() //判断File对象指向的路径是否有隐藏属性,如果隐藏了返回true,否则返回false

修改功能:
将当前File对象所指向的路径修改为指定File所指向的路径
boolean renameTo(File dest) //修改文件的名称
注意:修改的文件路径不能存在,如果存在, 修改失败.

File类重要的获取功能:
注意: 这里的几个方法,调用他们的对象都要是文件指向
常用的方法:
String[]list() //返回当前路径下所有的文件和文件夹名称
注意:只有指向文件夹的file对象才可以调用方法

File[]listFiles()


static File[]listRoots() //返回的是所有盘符




/*
1:把所有的文件信息获取到,获取文件夹下面所有的文件信息.保存数据到集合当中

2: 通过文件的信息,筛选出妈祖要求的java文件

3:  参数1:需要遍历的文件对象

4:  参数2:需要加载的集合数据

5: 参数3:需要得到文件夹的信息

6: 参数4:是否需要删除当前的文件夹 ,true删除,
*/

Io流分类:
流向
输入流 读取数据 FileReader
输出流 写出数据 FileWriter
数据类型
字节流(针对于媒体文件.图片,视频,声音等文件的操作.也可以针对于文本文件)
字节输入流 读取数据 InputStrem 文件---->Java程序
字节输出流 写出数据 OutputStrem Java程序---->文件
字符流(主要针对于文本文件,效率高)
字符输入流 读取数据 Reader 文件---->Java程序
字符输出流 写出数据 Writer Java程序---->文件


复制图片问题:
源文件------读取(对应码表)-------java程序------写入(对应码表)-------->目标文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是模拟 IIC 读取 TMP275AIDR 器件的读取函数的示例代码: ```c #include "stm32f10x.h" #define SDA_OUT() GPIO_InitTypeDef GPIO_InitStructure; \ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; \ GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; \ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; \ GPIO_Init(GPIOB, &GPIO_InitStructure) #define SDA_IN() GPIO_InitTypeDef GPIO_InitStructure; \ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; \ GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; \ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; \ GPIO_Init(GPIOB, &GPIO_InitStructure) #define SDA_H() GPIO_SetBits(GPIOB, GPIO_Pin_7) #define SDA_L() GPIO_ResetBits(GPIOB, GPIO_Pin_7) #define SDA_READ() GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_7) #define SCL_H() GPIO_SetBits(GPIOB, GPIO_Pin_6) #define SCL_L() GPIO_ResetBits(GPIOB, GPIO_Pin_6) void IIC_delay(uint16_t cnt) { uint16_t i; while(cnt--) { i = 10; while(i--); } } void IIC_init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &GPIO_InitStructure); SDA_H(); SCL_H(); } void IIC_start(void) { SDA_OUT(); SDA_H(); SCL_H(); IIC_delay(5); SDA_L(); IIC_delay(5); SCL_L(); } void IIC_stop(void) { SDA_OUT(); SCL_L(); SDA_L(); IIC_delay(5); SCL_H(); SDA_H(); IIC_delay(5); } uint8_t IIC_wait_ack(void) { uint8_t i; SDA_IN(); SDA_H(); IIC_delay(5); SCL_H(); IIC_delay(5); i = SDA_READ(); SCL_L(); return i; } void IIC_ack(void) { SDA_OUT(); SDA_L(); IIC_delay(5); SCL_H(); IIC_delay(5); SCL_L(); } void IIC_nack(void) { SDA_OUT(); SDA_H(); IIC_delay(5); SCL_H(); IIC_delay(5); SCL_L(); } void IIC_write_byte(uint8_t data) { uint8_t i; SDA_OUT(); SCL_L(); for(i = 0; i < 8; i++) { if((data & 0x80) == 0x80) SDA_H(); else SDA_L(); data <<= 1; IIC_delay(5); SCL_H(); IIC_delay(5); SCL_L(); } } uint8_t IIC_read_byte(uint8_t ack) { uint8_t i, data = 0; SDA_IN(); for(i = 0; i < 8; i++) { data <<= 1; SCL_L(); IIC_delay(5); SCL_H(); IIC_delay(5); if(SDA_READ()) data |= 0x01; } if(ack) IIC_ack(); else IIC_nack(); return data; } void TMP275AIDR_read_temp(float *temp) { uint8_t temp_data[2] = {0}; float t; IIC_start(); IIC_write_byte(0x90); // 发送器件地址,写模式 IIC_wait_ack(); IIC_write_byte(0x00); // 发送子地址,温度数据寄存器 IIC_wait_ack(); IIC_start(); IIC_write_byte(0x91); // 发送器件地址,读模式 IIC_wait_ack(); temp_data[0] = IIC_read_byte(1); temp_data[1] = IIC_read_byte(0); IIC_stop(); t = (temp_data[0] << 4) | (temp_data[1] >> 4); if(t & 0x800) t = (0xFFFFF000 | t) / 16.0; else t /= 16.0; *temp = t; } ``` 需要注意的是,以上代码是针对基于 STM32F10x 的开发板编写的,如果你的开发板不是 STM32F10x,可能需要修改相关的 GPIO 初始化和操作函数。另外,TMP275AIDR 的 I2C 地址是 0x48,因此在发送器件地址时需要将其左移一位,即发送 0x90(写模式)或 0x91(读模式)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值