Showing posts with label serialization. Show all posts
Showing posts with label serialization. Show all posts

Sunday, April 29, 2018

Read / Write data in a file for transient field using ObjectOutputStream

Using ObjectOutputStream class & transient keyword:
  1. import java.io.File;
  2. import java.io.FileOutputStream;
  3. import java.io.ObjectOutputStream;
  4. import java.io.Serializable;

  5. class Employee implements Serializable {

  6. private static final long serialVersionUID = 1L;
  7. int id;
  8. String name;
  9. // double salary;
  10. transient double salary;

  11. public Employee(int id, String name, double salary) {
  12. this.id = id;
  13. this.name = name;
  14. this.salary = salary;
  15. }

  16. @Override
  17. public String toString() {
  18. return "[id: " + id + ", name: " + name + ", salary: " + salary + "]";
  19. }
  20. }

  21. public class WriteByObjectOutputStreamExe {

  22. public static void main(String[] args) throws Exception {
  23. File file = new File("D:\\data1.txt");
  24. FileOutputStream fileStream = new FileOutputStream(file);
  25. ObjectOutputStream objStream = new ObjectOutputStream(fileStream);

  26. Employee e1 = new Employee(101, "suresh", 2000);

  27. objStream.writeObject(e1);
  28. objStream.flush();
  29. objStream.close();
  30. }
  31. }
Output:
ͭ sr  com.ishaan.filehandling.Employee        I idL namet Ljava/lang/String;xp   et suresh

Read transient field data from a file using ObjectInputStream:
  1. import java.io.File;
  2. import java.io.FileInputStream;
  3. import java.io.ObjectInputStream;

  4. public class ReadFileByObjectInputStreamExe {

  5. public static void main(String[] args) throws Exception {
  6. File file = new File("D:\\data1.txt");
  7. FileInputStream fileStream = new FileInputStream(file);
  8. ObjectInputStream objStream = new ObjectInputStream(fileStream);

  9. Employee emp = (Employee) objStream.readObject();

  10. System.out.println(emp.toString());
  11. objStream.close();
  12. }
  13. }
Output: 
[id: 101, name: suresh, salary: 0.0]

Write data from properties to xml file !!

Using Properties class:
  1. import java.io.File;
  2. import java.io.FileOutputStream;
  3. import java.util.Properties;

  4. public class WritePropertiesXmlFile {
  5. public static void main(String[] args) throws Exception {
  6. Properties properties = new Properties();
  7. properties.setProperty("suresh", "2000");
  8. properties.setProperty("mahesh", "1200");
  9. properties.setProperty("ritesh", "2100");

  10. File file = new File("D:\\test2.xml");
  11. FileOutputStream fileOut = new FileOutputStream(file);
  12. properties.storeToXML(fileOut, "balance-sheet");
  13. fileOut.close();
  14. }
  15. }
Output:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>balance-sheet</comment>
<entry key="ritesh">2100</entry>
<entry key="suresh">2000</entry>
<entry key="ishaan">0000</entry>
<entry key="mahesh">1200</entry>
</properties>

Write the data in properties file !!

Using Properties class:
  1. import java.io.File;
  2. import java.io.FileOutputStream;
  3. import java.io.IOException;
  4. import java.util.Properties;

  5. public class WritePropertiesFiles {

  6. public static void main(String[] args) throws IOException {
  7. Properties prop = new Properties();
  8. prop.setProperty("bangalore", "raju");
  9. prop.setProperty("delhi", "ritesh");
  10. prop.setProperty("chennai", "ishaan");
  11. prop.setProperty("japan", "chet");

  12. File file = new File("D:\\contacts.properties");
  13. FileOutputStream fileStream = new FileOutputStream(file);
  14. prop.store(fileStream, "store the contacts");
  15. fileStream.close();
  16. }
  17. }
Output:
#store the contacts
#Sun Apr 29 20:22:15 IST 2018
delhi=ritesh
japan=chet
chennai=ishaan
bangalore=raju

Write the data using PrintWriter in java !!

Using PrintWriter:
  1. import java.io.File;
  2. import java.io.FileWriter;
  3. import java.io.PrintWriter;
  4. import java.io.IOException;

  5. public class WriteByPrintWriterExe {
  6. public static void main(String[] args) throws IOException {
  7. File file = new File("D:\\data1.txt");
  8. FileWriter fw = new FileWriter(file);
  9. PrintWriter pw = new PrintWriter(fw);

  10. for (int i = 0; i < 5; i++) {
  11. pw.write("using PrintWriter !!");
  12. pw.append("\n");
  13. }
  14. pw.close();
  15. }
  16. }
Output:
using PrintWriter !!
using PrintWriter !!
using PrintWriter !!
using PrintWriter !!
using PrintWriter !!

Write data in a file using ObjectOutputStream !!

Using ObjectOutputStream:
  1. import java.io.File;
  2. import java.io.FileOutputStream;
  3. import java.io.ObjectOutputStream;
  4. import java.io.Serializable;

  5. class Employee implements Serializable {

  6. private static final long serialVersionUID = 1L;
  7. int id;
  8. String name;
  9. double salary;
  10. // transient double salary;

  11. public Employee(int id, String name, double salary) {
  12. this.id = id;
  13. this.name = name;
  14. this.salary = salary;
  15. }

  16. @Override
  17. public String toString() {
  18. return "[id: " + id + ", name: " + name + ", salary: " + salary + "]";
  19. }
  20. }

  21. public class WriteByObjectOutputStreamExe {

  22. public static void main(String[] args) throws Exception {
  23. File file = new File("D:\\data1.txt");
  24. FileOutputStream fileStream = new FileOutputStream(file);
  25. ObjectOutputStream objStream = new ObjectOutputStream(fileStream);

  26. Employee e1 = new Employee(101, "suresh", 2000);

  27. objStream.writeObject(e1);
  28. objStream.flush();
  29. objStream.close();
  30. }
  31. }
Output:
ͭ sr  com.ishaan.filehandling.Employee        I idD salaryL namet Ljava/lang/String;xp   e@ࠀ     t suresh


Write the data in a file using OutputStreamWriter !!

Using OutputStreamWriter: 
  1. import java.io.File;
  2. import java.io.FileOutputStream;
  3. import java.io.OutputStreamWriter;

  4. public class WriteByOutputStreamWriterExe {

  5. public static void main(String[] args) throws Exception {

  6. File file = new File("D:\\data1.txt");
  7. FileOutputStream fileStream = new FileOutputStream(file);
  8. OutputStreamWriter outputStream = new OutputStreamWriter(fileStream);

  9. for (int i = 0; i < 5; i++) {
  10. outputStream.write("using OutputStreamWriter !!");
  11. outputStream.append("\n");
  12. }
  13. outputStream.close();
  14. }
  15. }

Output: 
using OutputStreamWriter !!
using OutputStreamWriter !!
using OutputStreamWriter !!
using OutputStreamWriter !!
using OutputStreamWriter !!

Write the data in a file using OutputStreamWriter !!

Using OutputStreamWriter: 
  1. import java.io.File;
  2. import java.io.FileOutputStream;
  3. import java.io.OutputStreamWriter;
  4. import java.io.BufferedWriter;

  5. public class WriteByOutputStreamWriterExe {

  6. public static void main(String[] args) throws Exception {

  7. File file = new File("D:\\data1.txt");
  8. FileOutputStream fileStream = new FileOutputStream(file);
  9. OutputStreamWriter outputStream = new OutputStreamWriter(fileStream);
  10. BufferedWriter bw = new BufferedWriter(outputStream);

  11. for (int i = 0; i < 5; i++) {
  12. bw.write("Using FileOutputStream. Isn't is interesting !! :)");
  13. bw.newLine();
  14. }
  15. bw.close();
  16. }
  17. }
Output: 
Using FileOutputStream. Isn't is interesting !! :)
Using FileOutputStream. Isn't is interesting !! :)
Using FileOutputStream. Isn't is interesting !! :)
Using FileOutputStream. Isn't is interesting !! :)
Using FileOutputStream. Isn't is interesting !! :)

Write the data in a file using BufferedWriter !!

Using BufferedWriter:
  1. import java.io.File;
  2. import java.io.FileWriter;
  3. import java.io.BufferedWriter;
  4. import java.io.IOException;

  5. public class WriteByBufferedWriterExe {

  6. public static void main(String[] args) throws IOException {
  7. String contents = "writing data using BufferedWriter. Isn't it interesting !!)";

  8. File file = new File("D:\\data1.txt");
  9. FileWriter fw = new FileWriter(file);
  10. BufferedWriter bw = new BufferedWriter(fw);

  11. for (int i = 0; i < 5; i++) {
  12. bw.write(contents);
  13. bw.newLine(); // bw.append("\n");
  14. }
  15. bw.close();
  16. }
  17. }


Output:
writing data using BufferedWriter. Isn't it interesting !! :)
writing data using BufferedWriter. Isn't it interesting !! :)
writing data using BufferedWriter. Isn't it interesting !! :)
writing data using BufferedWriter. Isn't it interesting !! :)
writing data using BufferedWriter. Isn't it interesting !! :)

Write the data in a file using Files class !!

Using Files class:
  1. import java.nio.file.Files;
  2. import java.nio.file.Paths;
  3. import java.nio.file.Path;
  4. import java.io.IOException;

  5. public class WriteByFiles {
  6. public static void main(String[] args) throws IOException {
  7. String content = "writing data to data1.txt file using Files class !!";
  8. String uri = "D:\\data1.txt";
  9. Path path = Paths.get(uri);
  10. Files.write(path, content.getBytes());
  11. }
  12. }
Output:
writing data to data1.txt file using Files class !!

Write same data multiple times in a file using FileWriter class !!

Using FileWriter:
  1. import java.io.File;
  2. import java.io.FileWriter;

  3. public class WriteByFileWriterExe {

  4. public static void main(String[] args) throws Exception {
  5. File file = new File("D:\\data1.txt");
  6. FileWriter fw = new FileWriter(file);

  7. for (int i = 0; i < 5; i++) {
  8. fw.write("using FileWriter !!");
  9. fw.append("\n");
  10. }
  11. fw.close();
  12. }
  13. }
Output:

using FileWriter !!
using FileWriter !!
using FileWriter !!
using FileWriter !!
using FileWriter !!

Write the data in a file using FileWriter class !!

Using FileWriter: 
  1. import java.io.File;
  2. import java.io.FileWriter;
  3. import java.io.IOException;

  4. public class WriteByFileWriter {

  5. public static void main(String[] args) throws IOException {
  6. File file = new File("D:\\data1.txt");
  7. FileWriter contacts = new FileWriter(file);
  8. contacts.write("suresh - 9999999999\n");
  9. contacts.write("ritesh - 0000000000\n");
  10. contacts.write("mahesh - 8888888888");
  11. contacts.close();
  12. }
  13. }
Output:
suresh - 9999999999
ritesh - 0000000000
mahesh - 8888888888

Difference b/w FileOutputStream and FileWriter in java ?

  • FileOutputStream class is meant for writing streams of raw bytes / java object such as image data.
  • FileWriter class is meant for writing character data to a file. 
  • Similarity b/w FileOutputStream & FileWriter: Both the classes belongs to java.io package

Blueprint for self-improvement

To learn faster: Make the process fun To understand yourself : Write To understand the world better : Read To build deeper connection : Lis...