src/share/native/java/io/FileInputStream.c

Print this page
rev 6052 : [mq]: jdk.patch


  45 
  46 /**************************************************************
  47  * static methods to store field ID's in initializers
  48  */
  49 
  50 JNIEXPORT void JNICALL
  51 Java_java_io_FileInputStream_initIDs(JNIEnv *env, jclass fdClass) {
  52     fis_fd = (*env)->GetFieldID(env, fdClass, "fd", "Ljava/io/FileDescriptor;");
  53 }
  54 
  55 /**************************************************************
  56  * Input stream
  57  */
  58 
  59 JNIEXPORT void JNICALL
  60 Java_java_io_FileInputStream_open(JNIEnv *env, jobject this, jstring path) {
  61     fileOpen(env, this, path, fis_fd, O_RDONLY);
  62 }
  63 
  64 JNIEXPORT jint JNICALL
  65 Java_java_io_FileInputStream_read(JNIEnv *env, jobject this) {
  66     return readSingle(env, this, fis_fd);
  67 }
  68 
  69 JNIEXPORT jint JNICALL
  70 Java_java_io_FileInputStream_readBytes(JNIEnv *env, jobject this,
  71         jbyteArray bytes, jint off, jint len) {
  72     return readBytes(env, this, bytes, off, len, fis_fd);
  73 }
  74 
  75 JNIEXPORT jlong JNICALL
  76 Java_java_io_FileInputStream_skip(JNIEnv *env, jobject this, jlong toSkip) {
  77     jlong cur = jlong_zero;
  78     jlong end = jlong_zero;
  79     FD fd = GET_FD(this, fis_fd);
  80     if (fd == -1) {
  81         JNU_ThrowIOException (env, "Stream Closed");
  82         return 0;
  83     }
  84     if ((cur = IO_Lseek(fd, (jlong)0, (jint)SEEK_CUR)) == -1) {
  85         JNU_ThrowIOExceptionWithLastError(env, "Seek error");




  45 
  46 /**************************************************************
  47  * static methods to store field ID's in initializers
  48  */
  49 
  50 JNIEXPORT void JNICALL
  51 Java_java_io_FileInputStream_initIDs(JNIEnv *env, jclass fdClass) {
  52     fis_fd = (*env)->GetFieldID(env, fdClass, "fd", "Ljava/io/FileDescriptor;");
  53 }
  54 
  55 /**************************************************************
  56  * Input stream
  57  */
  58 
  59 JNIEXPORT void JNICALL
  60 Java_java_io_FileInputStream_open(JNIEnv *env, jobject this, jstring path) {
  61     fileOpen(env, this, path, fis_fd, O_RDONLY);
  62 }
  63 
  64 JNIEXPORT jint JNICALL
  65 Java_java_io_FileInputStream_read0(JNIEnv *env, jobject this) {
  66     return readSingle(env, this, fis_fd);
  67 }
  68 
  69 JNIEXPORT jint JNICALL
  70 Java_java_io_FileInputStream_readBytes(JNIEnv *env, jobject this,
  71         jbyteArray bytes, jint off, jint len) {
  72     return readBytes(env, this, bytes, off, len, fis_fd);
  73 }
  74 
  75 JNIEXPORT jlong JNICALL
  76 Java_java_io_FileInputStream_skip(JNIEnv *env, jobject this, jlong toSkip) {
  77     jlong cur = jlong_zero;
  78     jlong end = jlong_zero;
  79     FD fd = GET_FD(this, fis_fd);
  80     if (fd == -1) {
  81         JNU_ThrowIOException (env, "Stream Closed");
  82         return 0;
  83     }
  84     if ((cur = IO_Lseek(fd, (jlong)0, (jint)SEEK_CUR)) == -1) {
  85         JNU_ThrowIOExceptionWithLastError(env, "Seek error");