package com.javarush.test.level20.lesson02.task05; import java.io.*; /* И еще раз о синхронизации Разберитесь почему не работает метод main() Реализуйте логику записи в файл и чтения из файла для класса Object Метод load должен инициализировать объект данными из файла Метод main реализован только для вас и не участвует в тестировании */ public class Solution { public static void main(java.lang.String[] args) { //you can find your_file_name.tmp in your TMP directory or fix outputStream/inputStream according to your real file location //вы можете найти your_file_name.tmp в папке TMP или исправьте outputStream/inputStream в соответствии с путем к вашему реальному файлу try { File your_file_name = File.createTempFile("your_file_name", null); OutputStream outputStream = new FileOutputStream(your_file_name); InputStream inputStream = new FileInputStream(your_file_name); Object object = new Object(); object.string1 = new String(); //string #1 object.string2 = new String(); //string #2 object.save(outputStream); outputStream.flush(); Object loadedObject = new Object(); loadedObject.string1 = new String(); //string #3 loadedObject.string2 = new String(); //string #4 loadedObject.load(inputStream); //check here that the object variable equals to loadedObject - проверьте тут, что object и loadedObject равны System.out.println(object.string1.number == loadedObject.string1.number); System.out.println(object.string2.number == loadedObject.string2.number); outputStream.close(); inputStream.close(); } catch (IOException e) { //e.printStackTrace(); System.out.println("Oops, something wrong with my file"); } catch (Exception e) { //e.printStackTrace(); System.out.println("Oops, something wrong with save/load method"); } } public static class Object { public String string1; public String string2; public void save(OutputStream outputStream) throws Exception { //implement this method - реализуйте этот метод PrintWriter writer = new PrintWriter(outputStream); writer.println(string1 == null?"string1null":string1.number); writer.println(string2 == null?"string2null":string2.number); writer.flush(); writer.close(); } public void load(InputStream inputStream) throws Exception { //implement this method - реализуйте этот метод BufferedReader rd = new BufferedReader(new InputStreamReader(inputStream)); java.lang.String st1 = rd.readLine(); if (st1.equals("string1null")) string1 = null; else { int tempCountStrings = countStrings; int st1Number = Integer.parseInt(st1); countStrings = --st1Number; string1 = new String(); countStrings = tempCountStrings; } java.lang.String st2 = rd.readLine(); if (st2.equals("string2null")) string2 = null; else { int tempCountStrings = countStrings; int st2Number = Integer.parseInt(st2); countStrings = --st2Number; string2 = new String(); countStrings = tempCountStrings; } rd.close(); } } public static int countStrings; public static class String { private final int number; public String() { number = ++countStrings; } public void print() { System.out.println("string #" + number); } } }
Leave A Comment