nullInputStream() java
来源:百度知道 编辑:UC知道 时间:2024/09/20 13:29:53
Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。
可以将native方法比作Java程序同C程序的接口,其实现步骤:
1、在Java中声明native()方法,然后编译;
2、用javah产生一个.h文件;
3、写一个.cpp文件实现native导出方法,其中需要包含第二步产生的.h文件(注意其中又包含了JDK带的jni.h文件);
4、将第三步的.cpp文件编译成动态链接库文件;
5、在Java中用System.loadLibrary()方法加载第四步产生的动态链接库文件,这个native()方法就可以在Java中被访问了。 J
java的System.in里的in就是通过native方法和键盘进行交互的,相当于写了一个C的外挂,用C和操作系统交流,这样就能得到硬件信息了
附:jdk中部分源码
源码。
源码中有如下对 in, out 和 err 的申明:
public final static InputStream in = nullInputStream();
public final static PrintStream out = nullPrintStrea();
public final static PrintStream err = nullPrintStrea();
大约在1014 行左右可以发现对nullInputSteram和nullPrintStream的定义如下:
private static InputStream nullInputStream() throws NullPointerException {
if (currentTimeMillis() > 0)
return null