1. 程式人生 > >JAVA入門到精通-第45講-IO編程

JAVA入門到精通-第45講-IO編程

筆記 pan targe n) idt writer 文件已存在 area 同時

技術分享圖片image1=ImageIO.read(new File("bomb_1.gif"));圖片拷貝:技術分享圖片輸入流和輸出流同時要用的問題:圖片讀入到內存;寫入,輸出到某個文件;二進制文件,字節流完成;技術分享圖片FileInputStream fis=new FileInputStream("xxxx.jpg");出到指定文件:FileOutputStream fos=null;技術分享圖片關閉打開的文件流:技術分享圖片
------------------------------------------技術分享圖片FileReader,FileWriter類,文件字符流的對象;Reader讀進來,Writer寫出去;
byte 是一位,不足以表示漢字;
char 是兩位,可以表示一個漢字;技術分享圖片達到文件的末尾,返回-1;技術分享圖片char是1024個字符;技術分享圖片String s=new String(c,0,n);這樣,就沒有亂碼;
技術分享圖片關閉文件:finally---fr.close---fw.closefw.write(c,0,n); 讀取文件,防止亂碼;技術分享圖片
因為,發現JAVA開發者效率還是不夠高,提出緩沖字符流:提高效率;一個一個字節/字符讀取,速度太慢;技術分享圖片是一種編譯異常,技術分享圖片BufferedReader緩存為對象;先通過FileReader找到一個文件,然後通過BufferReader進行緩存技術分享圖片技術分享圖片readLine不讀取換行的;末尾,返回null;
技術分享圖片一行一行的讀取,速度比較快;
BufferedWriter輸出到磁盤;
FileWriter找到對象;BufferedWriter輸出到緩存;
文件的關閉:文件不關閉,後果很嚴重:技術分享圖片換行:\r\n技術分享圖片
坦克存盤退出:記錄坦克的坐標技術分享圖片一行行讀進來,讓坦克暫停;記事本功能的實現:技術分享圖片技術分享圖片---------------------------------------------
x39 1
java文件編程--常用io流
2
常用io流--文件字節流
3
1、案例[Io02.java]:讀取文件(文件字節輸入流使用,目的:FileInputStream類)把用FileInputStream的對象把文件讀入到內存
4
/**
5
 * File類的基本用法
6
 * io流--文件字節流
7
 * FileInputStream類的使用
8
 */
9
import java.io.*;
10
public class Io02 {
11
    public static void main(String[] args) {
12
        //得到一個文件對象,f指向e:\ff\hsp.txt文件
13
        File f=new File("e:\\ff\\hsp.txt");
14
        FileInputStream fis=null;
15
        try {
16
            //因為File沒有讀寫的能力,所以需要使用InputStream類
17
            fis=new FileInputStream(f);
18
            //定義一個字節數組,相當於緩存
19
            byte []bytes=new byte[1024];
20
            int n=0;//得到實際讀取到的字節數
21
            //循環讀取
22
            while((n=fis.read(bytes))!=-1){
23
                //把字節轉成String
24
                String s=new String(bytes,0,n);
25
                System.out.println(s);
26
            }
27
        } catch (Exception e) {
28
            e.printStackTrace();
29
        }finally{
30
            //關閉文件流必需放在finally語句塊中
31
            try {
32
                fis.close();
33
            } catch (Exception e) {
34
                e.printStackTrace();
35
            }
36
        }
37
    }
38
}
39

2、案例[Io03.java]:從鍵盤接收用戶輸入內容,並保存到文件中(文件字節輸出流,目的:FileOutputStream)


133 1
/**
2
 * File類的基本用法
3
 * io流--文件字節流
4
 * FileOutputStream類的使用
5
 */
6
import java.io.*;
7
public class Io03 {
8
    public static void main(String[] args) {
9
        File f=new File("e:\\ff\\ss.txt");//直接覆蓋寫同一個文件
10
                //字節輸出流
11
        FileOutputStream fos=null;
12
        if(f.exists()){
13
            System.out.println("文件已存在");
14
        }else{
15
            try {
16
                fos=new FileOutputStream(f);
17
                String s="hello,world!\r\n";
18
                String s1="中國人";
19
                fos.write(s.getBytes());
20
                fos.write(s1.getBytes());
21
            } catch (Exception e) {
22
                e.printStackTrace();
23
            }finally{
24
                try {
25
                    fos.close();
26
                } catch (Exception e2) {
27
                    e2.printStackTrace();
28
                }
29
            }
30
        }
31
    }
32
}
33

3、案例[Io04.java]:圖片拷貝


140 1
/**
2
 * File類的基本用法
3
 * io流--文件字節流
4
 * 圖片拷貝--FileInputStream類與 FileOutputStream類
5
 */
6
import java.io.*;
7
public class Io04 {
8
    public static void main(String[] args) {
9
        //先將圖片讀入到內存,再將內存中的圖片寫入到某個文件
10
        //因為二進制文件只能拿使用字節流來處理
11
        //輸入流
12
        FileInputStream fis=null;
13
        //輸出流
14
        FileOutputStream fos=null;
15
        
16
        try {
17
            fis=new FileInputStream("e:\\ff\\a.jpg");
18
            fos=new FileOutputStream("e:\\a.jpg");
19
            byte buf[]=new byte[1024];
20
            int n=0;//記錄實際讀取到的字節數
21
            //循環讀取圖片
22
            while((n=fis.read(buf))!=-1){
23
                //輸出到指定文件
24
                fos.write(buf);
25
            }
26
            
27
        } catch (Exception e) {
28
            e.printStackTrace();
29
        }finally{
30
            //一定要關閉打開的文件流
31
            try {
32
                fis.close();
33
                fos.close();
34
            } catch (Exception e) {
35
                e.printStackTrace();
36
            }
37
        }
38
    }
39
}
40
















來自為知筆記(Wiz)

JAVA入門到精通-第45講-IO編程