利用IO流实现基本类型与byte数组的互转

这里以double为例


double--->byte[]


public static byte[] convert(double num) throws IOException{
	byte[] data=null;

	ByteArrayOutputStream bos=new ByteArrayOutputStream();
	DataOutputStream dos=new DataOutputStream(bos);
	dos.writeDouble(num);
	dos.flush();

	data=bos.toByteArray();
	dos.close();
	return data;
}








byte[]--->double


public static double convert(byte[] data) throws IOException{
	DataInputStream dis=new DataInputStream(new ByteArrayInputStream(data));
	double num=dis.readDouble();
	dis.close();
	return num;
}







  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,我可以回答这个问题。首先,需要在STM32上配置FATFS文件系统,然后在代码中使用FATFS库函数来读写文件。下面是一个简单的代码示例,可以将一个数组写入文件,并从文件中读取该数组。 ```c #include "ff.h" #include "diskio.h" #define ARRAY_SIZE 100 BYTE array[ARRAY_SIZE] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20}; FRESULT res; // FatFs函数返回值 FIL file; // 文件对象 UINT bytes_written; // 已写入的字节数 UINT bytes_read; // 已读取的字节数 int main(void) { // 初始化FATFS文件系统 FATFS fs; f_mount(&fs, "", 0); // 打开文件,如果不存在则创建 res = f_open(&file, "test.txt", FA_OPEN_ALWAYS | FA_WRITE | FA_READ); if (res != FR_OK) { // 文件打开失败 } // 写入数组到文件中 res = f_write(&file, array, ARRAY_SIZE, &bytes_written); if (res != FR_OK) { // 写入文件失败 } // 将文件指针移到文件开头 f_lseek(&file, 0); // 从文件中读取数组 BYTE read_array[ARRAY_SIZE]; res = f_read(&file, read_array, ARRAY_SIZE, &bytes_read); if (res != FR_OK) { // 读取文件失败 } // 关闭文件 f_close(&file); // 比较写入和读取的数组 if (memcmp(array, read_array, ARRAY_SIZE) != 0) { // 数组不相等 } while(1); } ``` 在这个示例中,我们首先初始化了FATFS文件系统,然后打开一个名为“test.txt”的文件,如果该文件不存在,则创建一个新文件。接下来,我们将一个大小为100字节的数组写入文件,并将文件指针移到文件开头。然后,我们从文件中读取100字节,将读取的数组与写入的数组进行比较。最后,我们关闭文件并进入死循环。 希望这个例子可以帮助你了解如何使用FATFS库在STM32上读写数组

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值