Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Java - ObjectStreamField Class



Introduction

The Java ObjectStreamField class is a description of a Serializable field from a Serializable class. An array of ObjectStreamFields is used to declare the Serializable fields of a class.

Class declaration

Following is the declaration for Java.io.ObjectStreamField class −

public class ObjectStreamField
   extends Object
      implements Comparable<Object>

Class constructors

Sr.No. Constructor & Description
1

OutputStream()

Single Constructor.

Class methods

Sr.No. Method & Description
1 void close()

This method closes this output stream and releases any system resources associated with this stream.

2 void flush()

This method flushes this output stream and forces any buffered output bytes to be written out.

3 void write(byte[] b)

This method writes b.length bytes from the specified byte array to this output stream.

4 void write(byte[] b, int off, int len)

This method writes len bytes from the specified byte array starting at offset off to this output stream.

5 abstract void write(int b)

This method writes the specified byte to this output stream.

Methods inherited

This class inherits methods from the following classes −

  • Java.io.Object

Example - Writing to a file using FileOutputStream and closing it

The following example shows the usage of OutputStream close() method. We're writing data to a file, then explicitly close the stream.

OutputStreamDemo.java

package com.tutorialspoint;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class OutputStreamDemo {
   public static void main(String[] args) {
      OutputStream os = null;
      try {
         os = new FileOutputStream("example1.txt");
         String data = "Hello, OutputStream!";
         os.write(data.getBytes());
         System.out.println("Data written to file.");
      } catch (IOException e) {
         e.printStackTrace();
      } finally {
         try {
            if (os != null) {
               os.close(); // important to close the stream
               System.out.println("Stream closed.");
            }
         } catch (IOException e) {
            e.printStackTrace();
         }
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result−

Data written to file.
Stream closed.

Explanation

  • os.close() ensures the file is properly saved and the resource is released.

  • Not closing could lead to data not being written or file locks.

Example - Using flush() with FileOutputStream

The following example shows the usage of OutputStream flush() method.

OutputStreamDemo.java

package com.tutorialspoint;

import java.io.FileOutputStream;
import java.io.IOException;

public class OutputStreamDemo {
   public static void main(String[] args) {
      try {
         FileOutputStream fos = new FileOutputStream("example1.txt");

         String data = "Hello, this is a flush example!";
         fos.write(data.getBytes());

         // Flush the output stream to ensure data is written to file
         fos.flush();

         fos.close();
         System.out.println("Data written and flushed to file.");
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result −

Data written and flushed to file.

Explanation

  • write() writes the data to an internal buffer.

  • flush() forces any buffered bytes to be written to the file "example1.txt".

  • Without flush(), if the stream wasn't closed properly, some data might remain in the buffer and not reach the file.

Example - Writing a byte array to a file using FileOutputStream

The following example shows the usage of OutputStream write(byte[] b) method.

OutputStreamDemo.java

package com.tutorialspoint;

import java.io.FileOutputStream;
import java.io.IOException;

public class OutputStreamDemo {
   public static void main(String[] args) {
      try {
         FileOutputStream fos = new FileOutputStream("output1.txt");

         String data = "This is an example using write(byte[] b)";
         byte[] byteArray = data.getBytes();  // Convert string to byte array

         fos.write(byteArray);  // Write entire byte array to the file
         fos.close();

         System.out.println("Data written to output1.txt");
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result −

Data written to output1.txt

Explanation

  • getBytes() converts a string into a byte array.

  • write(byte[] b) writes the entire byte array to the file output1.txt.

  • Efficient for writing strings or binary data at once.

Advertisements