JAVA 基础 (properties类、序列化与翻序列化、打印流、commons-IO)

   

  • 1 Properties 类的存储与读取
package exrcise;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
import java.util.Set;

public class Demo1 {

	public static void main(String[] args) throws IOException {
		File file = new File("/home/alex/test/test.properties");
		Properties pro = new Properties();
		pro.setProperty("a", "1");
		pro.setProperty("b", "2");
		pro.setProperty("c", "3");
		//写入文件
		BufferedWriter out = new BufferedWriter(new FileWriter(file));
		pro.store(out, "");
		
		//从文件读取
		BufferedReader in = new BufferedReader(new FileReader(file));
		pro.load(in);
		
		//遍历properties
		Set<String> set = pro.stringPropertyNames();
		for (String string : set) {
			System.out.println(string + "..." + pro.getProperty(string));
		}
	}

}

  • 2对象的序列化与反序列化

transient关键字

当一个类的对象需要被序列化时,某些属性不需要被序列化,这时不需要序列化的属性可以使用关键字transient修饰。只要被transient修饰了,序列化时这个属性就不会琲序列化了。

同时静态修饰也不会被序列化,因为序列化是把对象数据进行持久化存储,而静态的属于类加载时的数据,不会被序列化。


package exrcise;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

public class Demo2 {

	public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
		
		
//		写入对象 
		writeObj();
//		读取对象
		Person person = readObj();
		System.out.println(person.toString());
	}
	
	
	
	
	
	private static Person readObj() throws FileNotFoundException, IOException, ClassNotFoundException {
		
		ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File("/home/alex/test/test.object")));
		Person person = (Person)ois.readObject();
		ois.close();
		return person;
		

		
	}





	public static void writeObj() throws FileNotFoundException, IOException {
		ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File("/home/alex/test/test.object")));
		oos.writeObject(new Person("alex", 33));
		oos.close();
	}

}

class Person implements Serializable{
	
	private String name;
	private int age;
	
	public Person() {
		super();
	}
	
	public Person(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}

	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}

	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + "]";
	}
	
	
}


  • 打印流

打印流添加输出数据的功能,使它们能够方便地打印各种数据值表示形式.

打印流根据流的分类:

     字节打印流 PrintStream

     字符打印流 PrintWriter

     方法:

void print(String str):输出任意类型的数据,

void println(Stringstr): 输出任意类型的数据,自动写入换行操作

package exrcise;

import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class Demo3 {
	public static void main(String[] args) throws IOException {
		PrintWriter pw = new PrintWriter(new FileWriter("/home/alex/test/printStream.txt"));
//		PrintWriter pw = new PrintWriter(System.out);
		for(int i=0;i<3;i++) {
			//打印到输出流
			pw.println("Hello World!");
		}
		pw.close();
	}
}


猜你喜欢

转载自blog.csdn.net/alexzt/article/details/80004836