如问题所述,我正在寻找java.io.FileOutputStream#write(int, boolean)
本机方法的源代码。我正在Ubuntu 16.04上,并且正在使用OpenJDK8。我已经从http://hg.openjdk.java.net/jdk8源下载了OpenJDK 8和OpenJDK 8 HotSpot项目。我可以找到其他本机方法的实现(例如System.currentTimeMillis
或System.arrayscopy
),但是找不到FileOutputStream.write(int, boolean)
。
我在/usr/lib/jvm/java-8-oracle/jre/lib/amd64
中看到很多库。您能否让我知道所有包含Java运行时源代码的地方,并帮助我找到FileOutputStream.write(int, boolean)
的实现?
答案 0 :(得分:1)
在一个名为src/java.base/unix/native/libjava/FileOutputStream_md.c
的文件中,有两种实现方式,一种用于unix,另一种用于Windows。
JNIEXPORT void JNICALL
Java_java_io_FileOutputStream_write(JNIEnv *env, jobject this, jint byte, jboolean append) {
writeSingle(env, this, byte, append, fos_fd);
}