gpt4 book ai didi

java - java中从linux设备char文件读取字节

转载 作者:太空宇宙 更新时间:2023-11-04 10:30:22 25 4
gpt4 key购买 nike

我正在编写一个java软件,该软件可以在Angstrom Linux、ARM平台的控制单元上运行。这个软件必须从/dev/gsm_status文件中读取gsm调制解调器的状态,并知道调制解调器是打开还是关闭。

这个文件是一个字 rune 件,到目前为止我已经用bash命令从这个文件中读取了值

dd if=/dev/gsm_status count=1 bs=1 2>/dev/null | hexdump -e '1/1 "%X\n"'

这样显示的值为0或1。

但是我无法通过java读取文件,我尝试了RandomAccessFile和FileInputStream但我总是收到IO异常。

我认为我的方法完全错误,你能给我一些指示吗?

非常感谢大家

更新

这是java代码

RandomAccessFile f = new RandomAccessFile(fileDevGsmPowerStatus.getAbsoluteFile(), "r");
f.seek(0);
System.out.println("--" + f.readChar()+"--");

这是 RandomAccessFile 的错误,FileInpuntStream 也是如此

java.io.IOException: Input/output error
at java.io.RandomAccessFile.read(Native Method)
at java.io.RandomAccessFile.readChar(RandomAccessFile.java:743)
at winger.fuelfeed.client.abt21.gsm.CinterionBGS2.getModemPowerState(CinterionBGS2.java:207)
at winger.fuelfeed.client.FuelfeefClient.main(FuelfeefClient.java:31)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)

最佳答案

也许尝试显式读取单个字节的数据(而不是说,将输入视为字符串,就像某些读者的情况一样):

DataInputStream input = new DataInputStream(new BufferedInputStream(
new FileInputStream("/dev/gsm_status")
));

byte b = input.readByte();

关于java - java中从linux设备char文件读取字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50073862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com