"இன்று நாங்கள் பொருட்களை சேமித்து ஒரு கோப்பிலிருந்து படிப்பதை ஆய்வு செய்தோம் என்பது உங்களுக்கு நினைவிருக்கிறதா?"

"ஆம், நாங்கள் ஒரு வெளியீட்டு ஸ்ட்ரீமில் சேமித்துள்ளோம், ஒரு உள்ளீட்டு ஸ்ட்ரீமில் இருந்து படித்தோம்."

"நல்லது, அமிகோ. இந்த விவரங்களை நீங்கள் கவனிக்கிறீர்கள் என்று கேட்க நன்றாக இருக்கிறது. ஒரு கோப்பில் சேமித்து படிக்கும் வகையில் குறியீட்டை முடிக்க முடியுமா?"

"என்ன முடிக்க வேண்டும்?! ஒரு FileInputStream மற்றும் FileOutputStream ஆகியவற்றை அறிவித்து, அவற்றைச் சேமித்தல் மற்றும் ஏற்றுதல் முறைகளுக்கு அனுப்பவும். இங்கு குழப்பமடைய ஒன்றுமில்லை. மிகவும் எளிமையானது."

"உங்களுக்காக நான் மகிழ்ச்சியடைகிறேன். இப்போது ஒரு புதிய தலைப்பு: சீரியல் ."

வரிசைப்படுத்தல் என்பது நாம் இப்போது செய்ததைப் போலவே உள்ளது, ஆனால் மிகவும் குளிரானது மற்றும் ஜாவா இயந்திரத்தில் கட்டமைக்கப்பட்டுள்ளது. ஜாவா இயந்திரம் அதன் பொருட்களை சேமித்து ஏற்ற முடியும். இதைச் செய்ய, சேமித்தல் மற்றும் ஏற்றுதல் முறைகள் கூட தேவையில்லை: அனைத்து பொருட்களும் ஜாவா இயந்திரத்திற்குள் சேமிக்கப்படுகின்றன, மேலும் அது அவற்றுக்கான முழு அணுகலைக் கொண்டுள்ளது."

நாங்கள் பொருளை எடுத்து ஒரு ஸ்ட்ரீமில் சேமித்து ஒரு ஸ்ட்ரீமில் இருந்து படிக்கிறோம்:

குறியீடு
public static void main(String[] args) throws Exception
{
 Cat cat = new Cat();

 //Save a cat to file
 FileOutputStream fileOutput = new FileOutputStream("cat.dat");
 ObjectOutputStream outputStream = new ObjectOutputStream(fileOutput);
 outputStream.writeObject(cat);
 fileOutput.close();
 outputStream.close();

 //Load a cat from file
 FileInputStream fiStream = new FileInputStream("cat.dat");
 ObjectInputStream objectStream = new ObjectInputStream(fiStream);
 Object object = objectStream.readObject();
 fiStream.close();
 objectStream.close();

 Cat newCat = (Cat)object;
}

"அவ்வளவுதான்?"

"சரியாக. ஒரு மிகப் பெரிய மற்றும் சிக்கலான வரிசைப்படுத்தல் பொறிமுறை உள்ளது , இது ஒரு ஸ்ட்ரீமில் சேமிக்கவும் மற்றும் கிட்டத்தட்ட எந்த தரவு வகையின் ஸ்ட்ரீமிலிருந்து படிக்கவும் உதவுகிறது."

"கிட்டத்தட்ட ஏதேனும். எனவே எந்த தரவு வகையும் இல்லையா?"

"ஆம், உண்மை என்னவென்றால், எல்லாப் பொருட்களும் சேமிக்கப்படும் உள்ளார்ந்த திறனைக் கொண்டிருக்கவில்லை . சில பொருள்கள் அவற்றின் எல்லா தரவையும் உள்நாட்டில் சேமிக்காது. மாறாக, அவை மற்ற பொருள்கள் மற்றும்/அல்லது தரவு மூலங்களைக் குறிப்பிடுகின்றன. எடுத்துக்காட்டாக, கன்சோல் (சிஸ்டம். in), ஒரு உள்ளீட்டு ஸ்ட்ரீம் (InputStream) மற்றும் பிற விஷயங்கள்."

அதனால்தான் ஜாவாவின் படைப்பாளிகள் சிறப்பு சீரியலைசபிள் இன்டர்ஃபேஸ் மார்க்கரைக் கொண்டு வந்தனர் . இது குறிப்பான் என்று அழைக்கப்படுகிறது , ஏனெனில் இதில் தரவு மற்றும் முறைகள் எதுவும் இல்லை. இது "டேக்" அல்லது "மார்க்" வகுப்புகளுக்கு மட்டுமே பயன்படுத்தப்படுகிறது. எங்கள் வகுப்பு அதன் அனைத்து தரவையும் உள்நாட்டில் சேமிக்கிறது என்று நாங்கள் நம்பினால், அதை சீரியலைசபிள் கருவிகள் மூலம் குறிக்கலாம் .

வரிசைப்படுத்தலுக்கான ஆதரவுடன் "பூனை" உதாரணம் இங்கே:

குறியீடு
class Cat implements Serializable
{
 public String name;
 public int age;
 public int weight;
}

நாம் ஒரு பொருளை வரிசைப்படுத்த (சேமிக்க) முயற்சிக்கும்போது, ​​ஜாவா இயந்திரம் அது வரிசைப்படுத்தலை ஆதரிக்கிறதா என்பதைச் சரிபார்க்கிறது: இது சீரியலைசபிள் இடைமுகத்தை செயல்படுத்துகிறதா? அவ்வாறு செய்தால், அது பொருளைச் சேமிக்கிறது. இல்லை என்றால், சீரியலைசேஷன் சாத்தியமற்றது என்பதைக் குறிக்க ஒரு விதிவிலக்கு அளிக்கப்படுகிறது.
வரிசைப்படுத்தக்கூடிய பொருள் வரிசைப்படுத்தக்கூடிய பொருள்களை மட்டுமே கொண்டிருக்க வேண்டும் என்பதை இங்கே நீங்கள் புரிந்து கொள்ள வேண்டும்.

"சரி, அது அர்த்தமுள்ளதாக இருக்கிறது. அதன் பகுதிகளைச் சேமிக்காமல் முழுவதையும் சேமிக்க முடியாது."

"சரியாக."

"மற்றும் ints, Strings மற்றும் ArrayLists பற்றி என்ன?"

"அவர்கள் அனைவரும் சீரியலை ஆதரிக்கிறார்கள். ஜாவாவின் படைப்பாளிகள் இது நடந்ததை உறுதிசெய்ய சிறப்பு கவனம் செலுத்தினர். இங்கு எந்த பிரச்சனையும் இருக்கக்கூடாது."

மேலும், பொருள் வரிசைப்படுத்தப்படும் போது ஒரு பொருளின் வகை சேமிக்கப்படுகிறது. இப்போது நீங்கள் ஒரு பொருள் மாறியில் பூனை பொருளின் குறிப்பைச் சேமிக்கலாம். எல்லாம் சீரியல் மற்றும் சீரியலைஸ் நன்றாக இருக்கும்.

"டீசீரியலைஸ்?"

" டீசீரியலைசேஷன் என்பது சீரியலைசேஷன் தலைகீழாக மாற்றும் செயல்முறையாகும்: ஸ்ட்ரீம்/கோப்பில் இருந்து ஒரு பொருளைப் படித்து மறுகட்டமைத்தல்."

"அட, இனி கேள்விகள் இல்லை."