JAVA入門到精通-第45講-IO編程
阿新 • • 發佈:2018-11-30
筆記 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
133 1
140 1
來自為知筆記(Wiz)
------------------------------------------FileReader,FileWriter類,文件字符流的對象;Reader讀進來,Writer寫出去;
byte 是一位,不足以表示漢字;
關閉文件:finally---fr.close---fw.closefw.write(c,0,n); 讀取文件,防止亂碼;
因為,發現JAVA開發者效率還是不夠高,提出緩沖字符流:提高效率;一個一個字節/字符讀取,速度太慢;是一種編譯異常,BufferedReader緩存為對象;先通過FileReader找到一個文件,然後通過BufferReader進行緩存;readLine不讀取換行的;末尾,返回null;
一行一行的讀取,速度比較快;
BufferedWriter輸出到磁盤;
文件的關閉:文件不關閉,後果很嚴重:換行:\r\n
坦克存盤退出:記錄坦克的坐標一行行讀進來,讓坦克暫停;記事本功能的實現:---------------------------------------------
java文件編程--常用io流
2常用io流--文件字節流
31、案例[Io02.java]:讀取文件(文件字節輸入流使用,目的:FileInputStream類)把用FileInputStream的對象把文件讀入到內存
4/**
5 * File類的基本用法
6 * io流--文件字節流
7 * FileInputStream類的使用
8 */
9import java.io.*;
10public 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 */
6import java.io.*;
7public 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 */
6import java.io.*;
7public 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編程