[总结] 2016.12.15 星期四
Posted 取名字什么的最麻烦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[总结] 2016.12.15 星期四相关的知识,希望对你有一定的参考价值。
I/O输入,输出
第一:先判断到底是输入还是输出,站在程序的立场
第二:判断是传递字节,还是字符,决定管道粗细,字节流是最基本的数据输出管道。字符类型管道专门用来传送文本数据。
Java流的四大父类:1.字节流(包含InputStream,OutputStream)
2.字符流(包含Read,Write)
文件的拷贝,这里可能是在面试中出现的手工书写的代码最多的题之一
public class Testio { public static void main(String[] args) { FileReader fir = null; FileWriter fiw = null; try { fir = new FileReader("E:/a/test.txt"); fiw = new FileWriter("E:/test.txt"); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } char b [] = new char[1024]; int length = 0; try { while((length = fir.read(b)) != -1 ){ fiw.write(b, 0, length); } }catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ if (fir != null) { try { fir.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (fiw != null) { try { fiw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
对象序列化和反序列化
序列化:指将内存中的对象以二进制流的形式输出
反序列化:将输入的二进制对象流转化成内存中的一个对象
实现传输功能需要使用可序列化接口---Serializable
JavaBean规范中德第三项:应该加上Serializable接口
Transient 关键字修饰的属性,其值不参与序列化。
public class TestSerializable { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub 对象序列化---将对象以二进制流的形式输出 StudentBean sb = new StudentBean("zhang3",24,true,new HomeAddress("成都市","建设北路","2-3号")); ObjectOutputStream oos = null; try { oos = new ObjectOutputStream(new FileOutputStream("student.data")); oos.writeObject(sb); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ if(oos != null){ try { oos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
对象反序列化---将输入的二进制流转换为内存中的对象
反序列化是Java当中第2种产生对象的方式
StudentBean sb = null; ObjectInputStream ois = null; try { ois = new ObjectInputStream(new FileInputStream("student.data")); sb = (StudentBean)ois.readObject(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ if(ois != null){ try { ois.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } System.out.println(sb.getName()); System.out.println(sb.getAge()); System.out.println(sb.getMyHome().getCity()); } }
File.类
表是文件或文件夹对象
作为文件对象的常用方法
.getAbsolutePath();获取绝对路径
.getPath();获取相对路径
.length();获取文件大小
作为文件夹对象的常用方法
String [] subFileName = dir.list();:得到文件夹下面的字文件,返回String数组
以上是关于[总结] 2016.12.15 星期四的主要内容,如果未能解决你的问题,请参考以下文章