當前位置:
首頁 >
第二十六节(对象流,File类)
發布時間:2024/9/5
50
豆豆
生活随笔
收集整理的這篇文章主要介紹了
第二十六节(对象流,File类)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
對象流可以將 Java 對象轉換成二進制寫入磁盤,這個過程通常叫做序列化,并且還可以從磁盤讀出完整的 Java 對象,而這個過程叫做反序列化。對象流主要包括:ObjectInputStream 和 ObjectOutputStream如何實現序列化和反序列化如果實現序列化該類必須實現序列化接口 java.io. Serializable , 該接口沒有任何方法, 該接口只是一種標記接口,標記這個類是可以序列化的/*對象流:對象流可以將java對象轉換成二進制寫入磁盤,這個過程叫做“序列化”還可以從磁盤讀取完整的Java對象,這個過程叫 “反序列化”包括:ObjectInputStream 和 ObjectOutputStreamjava.io.Serializable */import java.io.*;public class ObjectStreamTest01{public static void main(String[] ags){ObjectOutputStream oos = null;try{FileOutputStream fos = new FileOutputStream("C:\\work\\Java\\arry.txt");oos = new ObjectOutputStream(fos); Student stu = new Student();stu.name = "ming太帥了,沒道理不愛你 !";oos.writeObject(stu);} catch(FileNotFoundException e){e.printStackTrace(); } catch(IOException e){e.printStackTrace(); } finally{try{if(oos != null){oos.close(); }} catch(IOException e){e.printStackTrace(); }}}}// 實現序列化接口
class Student implements Serializable{String name;
}///*對象流:對象流可以將java對象轉換成二進制寫入磁盤,這個過程叫做“序列化”還可以從磁盤讀取完整的Java對象,這個過程叫 “反序列化”包括:ObjectInputStream 和 ObjectOutputStreamjava.io.Serializable */import java.io.*;public class ObjectStreamTest02{public static void main(String[] ags){ObjectInputStream ois = null;try{FileInputStream fis = new FileInputStream("C:\\work\\Java\\arry.txt");ois = new ObjectInputStream(fis);// 反序列化Student stu = (Student)ois.readObject();System.out.println(stu.name);}catch(FileNotFoundException e){e.printStackTrace(); }catch(IOException e){e.printStackTrace();}catch(ClassNotFoundException e){e.printStackTrace(); } finally{try{if(ois != null){ois.close(); }}catch(IOException e){e.printStackTrace(); }}}}// 實現序列化接口
class Student implements Serializable{String name;
} File 提供了大量的文件操作:刪除文件,修改文件,得到文件修改日期,建立目錄、列表文件等/*java.io.File;1. File類與流無關,不能通過該類完成文件的讀和寫2. File是文件和目錄路徑名的抽象的表現形式File代表的是硬盤上的Directory 和 file*/import java.io.*;public class FileTest01{public static void main(String[] args){// path 相對路徑File f1 = new File("PrintStreamTest02.java");File f2 = new File("C:\\work\\Java\\course\\vip\\JavaSE-Course-Arry\\chapter26\\PrintStreamTest02.java");File f3 = new File("C:\\work\\Java");System.out.println(f1.exists());//輸出trueSystem.out.println(f2.exists());//trueSystem.out.println(f3.exists());//true
File f4 = new File("c:\\yyy");System.out.println(f4.exists());// 如果不存在在創建if(!f4.exists()){// 創建目錄
f4.mkdir();try{// 創建文件
f4.createNewFile();}catch(IOException e){e.printStackTrace();} }File f5 = new File("c:\\a\\b\\c\\d");if(!f5.exists()){f5.mkdirs(); // C:\a\b\c\d
}}}//*File類中的部分方法*/import java.io.*;
import java.util.*;
import java.text.*;public class FileTest02{public static void main(String[] args){// 獲取絕對路徑File f1 = new File("FileTest01.java");String absolutePath = f1.getAbsolutePath();System.out.println("絕對路徑:" + absolutePath);// 獲取文件名System.out.println("文件名:"+f1.getName());// 獲取父路徑File f2 = new File("C:\\work\\Java\\course\\vip\\JavaSE-Course-Arry\\chapter26");String parentPath = f2.getParent();System.out.println(parentPath);// 判斷該File 是文件File還是目錄DirectorySystem.out.println(f1.isDirectory());//falseSystem.out.println(f1.isFile());//true// 獲取文件的最后一次修改時間Date d = new Date(f1.lastModified());System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS").format(d));// 獲取文件的長度(字節數)System.out.println("文件的長度:" + f1.length());File f3 = new File("C:\\work\\Java\\course\\vip\\JavaSE-Course-Arry\\chapter26");File[] fs = f3.listFiles();//遍歷for(File f : fs){if(f.getAbsolutePath().endsWith(".java")){System.out.println("絕對路徑 : " + f.getAbsolutePath()); }}}}
?
轉載于:https://www.cnblogs.com/Deng1185246160/p/4234329.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的第二十六节(对象流,File类)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个简单的pygame接金币游戏
- 下一篇: [数据结构]顺序单链表插入