我正在尝试创建一个Java程序,为我的Arduino写入文件。Arduino是一个简单的8位微控制器板,配合一些额外的硬件,可以逐字节读取SD卡中的文本文件。
结果证明这比我想象的要难得多。首先,Java中没有无符号值。甚至出于某种原因,连字节也不行!即使将字节设置为0xFF也会出现可能丢失精度的错误!对于这种低级代码来说,这并不是很有用。。
我会使用int并只使用正值,但在我的许多代码中,我喜欢利用字节溢出(虽然在数学运算后我可能可以通过模操作完成这个过程),而最大的问题是我不知道如何将int作为8位字符添加到稍后写入文件的字符串中。输出目前是我面临的最大问题。
那么,基于用户输入执行无符号位运算,然后将这些位作为ASCII字符写入文件的最佳方法是什么?
结果证明这比我想象的要难得多。首先,Java中没有无符号值。甚至出于某种原因,连字节也不行!即使将字节设置为0xFF也会出现可能丢失精度的错误!对于这种低级代码来说,这并不是很有用。。
我会使用int并只使用正值,但在我的许多代码中,我喜欢利用字节溢出(虽然在数学运算后我可能可以通过模操作完成这个过程),而最大的问题是我不知道如何将int作为8位字符添加到稍后写入文件的字符串中。输出目前是我面临的最大问题。
那么,基于用户输入执行无符号位运算,然后将这些位作为ASCII字符写入文件的最佳方法是什么?
String
?你可以将byte[]
写入文件。使用字符串只会需要多余的转换成byte[]
。 - Esailija