在Linux中,一切都是文件:键盘,目录,文本文件,USB设备等。
在java中,如果我使用File对象来接受键盘之类的东西会发生什么(或者任何不是典型的#34;文件"会不会有效?如果没有,怎么办?来?
如果它能够起作用,我能用它做任何有意义的事情还是有限制?
答案 0 :(得分:1)
是的,Java File
类对所有文件的工作方式相同。它也适用于目录(那些将返回true
isDirectory
)和特殊文件(如键盘和USB设备)(这些将返回false
isFile
)。
FileReader
,FileInputStream
以及类似的类将适用于常规文件和特殊文件,但不适用于目录。
例如,这是一个简单的程序(为简单起见,删除了错误处理),它从'/ dev / random'设备读取随机字节,并将它们写入'/ dev / dsp'的音频输出。 (这是吵闹和可怕的,请注意你的耳朵!)
import java.io.*;
public class Main {
public static void main(String[] args) throws Exception {
File random = new File("/dev/random");
File audio = new File("/dev/dsp");
InputStream in = new FileInputStream(random);
OutputStream out = new FileOutputStream(audio);
while (true) {
out.write(in.read());
}
}
}
要记住的是,像这样的'特殊'文件通常不允许您在文件中寻找,即前进和后退。例如,您不能阅读键盘将在十分钟后发送的内容。