---恢復內容開始---
定義
在JAVA.IO中可以找到文檔
一串數據像河流一樣,先進先出的方式通過
輸入流:讀操作;
輸出流:寫操作;
File類的使用

package com.jiedada.fil; import java.io.File; import java.io.IOException; public class lif { public static void main(String[] args) { // TODO Auto-generated method stub //創建File File file=new File("f:\\qq\\qq"); System.out.println("是不是目錄:"+file.isDirectory()); System.out.println("是不是文件:"+file.isFile()); //添加目錄 File file1=new File("f:\\qq\\qq\\qq","HashSet"); if(!file1.exists()) { file1.mkdirs(); } File file2=new File("f:\\qq\\qq1"); //添加文件 if(!file2.exists()) { try { file2.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
file是文件的意思
字節流
FileInputSteam讀取文件,視頻等等0 1序列的輸入常用方法
每次都要釋放出系統占有的資源
對象。close方法;

package com.jiedada.fil; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class FileInouteStea { public static void main(String[] args) { // TODO Auto-generated method stub File file=new File("f:\\qq\\qq\\qq.txt"); try { FileInputStream filein=new FileInputStream(file); //輸出的幾種方式 /* int n=filein.read(); while(n!=-1) { System.out.print((char)n); n=filein.read(); }*/ //第二種 /*int n=0; while((n=filein.read())!=-1) { System.out.print((char)n); }*/ //第三種 byte b[]=new byte[100]; filein.read(b, 0, 5); System.out.print(new String(b)); filein.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch(IOException e) { e.printStackTrace(); } } }
輸入輸出流的方法

package com.jiedada.fil; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class rw { public static void main(String[] args) { // TODO Auto-generated method stub //定義輸入輸出流 try { FileInputStream fis=new FileInputStream("f:\\qq\\read\\pulpit.jpg"); FileOutputStream fos=new FileOutputStream("f:\\qq\\read\\otherpulpit.jpg"); int n=0; byte b[]=new byte[1024]; if((n=fis.read(b))!=-1) { //讀入相同大小的圖片 fos.write(b,0,n); } //必須執行 fis.close(); fos.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } //這個判定也很重要 catch(IOException e) { e.printStackTrace(); } } }
緩沖流
因為在硬盤中讀寫的速度太慢了所以我們需要增加程序的數度需要用到
BUfferedInputSteam
BufferedOutputSteam

package com.jiedada.fil; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.nio.BufferOverflowException; public class sad { public static void main(String[] args) { // TODO Auto-generated method stub try { FileInputStream fis=new FileInputStream("f:\\qq\\qq\\qq.txt"); BufferedInputStream bis=new BufferedInputStream(fis); FileOutputStream fos=new FileOutputStream("f:\\qq\\qq\\qq.txt"); BufferedOutputStream bos=new BufferedOutputStream(fos); long start=System.currentTimeMillis(); bos.write(10); bos.write('a'); //如果沒有這樣的語句就無法顯示在文件中,而是放在其他位置 bos.flush(); System.out.println(bis.read()); System.out.println((char)bis.read()); long end =System.currentTimeMillis(); System.out.println(end-start); //必須寫入 bos.close(); fos.close(); bis.close(); fis.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch(IOException e) { e.printStackTrace(); } } }
字符流
和字節流基本差不多

package com.jiedada.fil; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class StringFile { public static void main(String[] args) { // TODO Auto-generated method stub try { FileInputStream fis=new FileInputStream("f:\\qq\\qq\\qq.txt"); InputStreamReader isd=new InputStreamReader(fis); BufferedReader br=new BufferedReader(isd); FileOutputStream fos=new FileOutputStream("f:\\qq\\qq\\qq1.txt"); OutputStreamWriter osw=new OutputStreamWriter(fos); BufferedWriter bw=new BufferedWriter(osw); int n=0; char c[]=new char[10]; /*while((n=isd.read())!=-1) { System.out.print((char)n); }*/ while((n=br.read(c))!=-1) { osw.write(c,0,n); osw.flush(); } fis.close(); isd.close(); fos.close(); osw.close(); br.close(); bw.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch(IOException e) { e.printStackTrace(); } } }
幾個必須,和其中的邏輯關系不要混淆了;
對象的序列化與反序列化
當發送的內容多種多樣的時候比如端口什么等等,我們需要發送一個類,這樣通過解析我們就能獲得我們想要的內容了
需要繼承Serializable接口
類的創建

package com.jiedada.fil; import java.io.Serializable; public class Goods implements Serializable{ private String id; private String name; private int price; public Goods() { } public Goods(String id, String name, int price) { super(); this.id = id; this.name = name; this.price = price; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } @Override public String toString() { return "Goods [id=" + id + ", name=" + name + ", price=" + price + "]"; } }
測試類的創建

package com.jiedada.fil; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class GoodsTest { public static void main(String[] args) { // TODO Auto-generated method stub //定義一個類 Goods goods=new Goods("s001","diannao",3000); //寫出數據 FileOutputStream fos; try { fos = new FileOutputStream("f:\\qq\\qq\\qq.txt"); ObjectOutputStream oos=new ObjectOutputStream(fos); //讀入數據 FileInputStream fis=new FileInputStream("f:\\qq\\qq\\qq.txt"); ObjectInputStream ois=new ObjectInputStream(fis); oos.writeObject(goods); oos.writeBoolean(true); oos.flush(); System.out.println(ois.readBoolean()); try { Goods goods1=(Goods)ois.readObject(); System.out.println(goods1); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } fis.close(); fos.close(); oos.close(); ois.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); } } }
---恢復內容結束---