码迷,mamicode.com
首页 > 其他好文 > 详细

文件操作和序列化

时间:2018-01-01 21:48:57      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:desktop   gbk   utf-8   模板   java   class   null   文件的   fileinput   

编码:

(1)utf-8编码中文占用3个字节,英文占用一个字节。

(2)gbk编码中文占用2个字节,英文占用1个字节。

(3)java是双字节编码utf-16be,中文占用2个字节,英文占用2个字节。

 

序列化:
序列化就是将Object转换成byte序列,反之叫对象的反序列化。序列化流(ObjectOutputStream)--writeObject,反序列化流(ObjectInputStream)--readObject

对象必须实现序列化接口(Serializable),才能进行序列化,否则将出现异常。这个接口没有任何方法,只是一个标准。

 

序列化对象的代码模板:

//序列化对象

OutputStream os = new FileOutputStream("C:\\Users\\User\\Desktop\\论文\\wzf.txt");
ObjectOutputStream oos = new ObjectOutputStream(os);
Student stu = new Student("wzf",26);
oos.writeObject(stu);
oos.flush();
oos.close();
os.close();

//反序列化对象
InputStream is = new FileInputStream("C:\\Users\\User\\Desktop\\论文\\wzf.txt");
ObjectInputStream ois = new ObjectInputStream(is);
Student stu2 = (Student)ois.readObject();
System.out.println(stu2);
ois.close();
is.close();

读写文件的代码模板:

InputStream is = new FileInputStream("C:\\Users\\User\\Desktop\\论文\\坐标文件\\Car19_utf.txt");
OutputStream os = new FileOutputStream("C:\\Users\\User\\Desktop\\论文\\坐标文件\\wzf.txt");
InputStreamReader isr = new InputStreamReader(is,"utf-8");
OutputStreamWriter osw = new OutputStreamWriter(os,"gbk");
BufferedReader br = new BufferedReader(isr);
BufferedWriter bw = new BufferedWriter(osw);
String str;
while((str = br.readLine()) != null){
  //osw.write(str+"\r\n");
  bw.write(str);
  bw.newLine();
  osw.flush();
}
bw.close();
br.close();
osw.close();
isr.close();
os.close();
is.close();

 

文件操作和序列化

标签:desktop   gbk   utf-8   模板   java   class   null   文件的   fileinput   

原文地址:https://www.cnblogs.com/wangzhaofang/p/8168816.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!