亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JAVA基礎學習day19--IO流一、FileWrite與FileReader

2019-11-14 15:32:26
字體:
來源:轉載
供稿:網友

一、IO簡述

1.1、簡述

IO:input/output

IO流用來處理設備之間的數據傳輸

java對數據的操作是通過流的方式

Java用于操作流的對象都在IO包中。

1.2、結構

字節流抽象類:

InputStream,OutputStream

字符流抽象類:

Reader、Writer。

ps:由這四4個派生出來子類名稱都是以父類名作為子類名的后綴

如:InputStream的子類FileInputStream

如:Reader的子類FileReader;

1.3、分類

按操作數據方式為兩種:字節流與字符流

按流向分:輸入流,輸出流

 

二、Writer

2.1、writer

寫入字符流的抽象類。子類必須實現的方法僅有 write(char[], int, int)、flush() 和 close()。但是,多數子類將重寫此處定義的一些方法,以提供更高的效率和/或其他功能。

字段摘要
PRotected Objectlock
用于同步針對此流的操作的對象。

構造方法摘要
protected Writer()
創建一個新的字符流 writer,其關鍵部分將同步 writer 自身。
protected Writer(Object lock)
創建一個新的字符流 writer,其關鍵部分將同步給定的對象。

方法摘要
Writerappend(char c)
將指定字符添加到此 writer。
Writerappend(CharSequence csq)
將指定字符序列添加到此 writer。
Writerappend(CharSequence csq, int start, int end)
將指定字符序列的子序列添加到此 writer.Appendable。
abstract voidclose()
關閉此流,但要先刷新它。
abstract voidflush()
刷新該流的緩沖。
voidwrite(char[] cbuf)
寫入字符數組。
abstract voidwrite(char[] cbuf, int off, int len)
寫入字符數組的某一部分。
voidwrite(int c)
寫入單個字符。
voidwrite(String str)
寫入字符串。
voidwrite(String str, int off, int len)
寫入字符串的某一部分。

 

三、FileWriter與FileReader

3.1、FileWriter

構造方法摘要
FileWriter(File file)
根據給定的 File 對象構造一個 FileWriter 對象。
FileWriter(File file, boolean append)
根據給定的 File 對象構造一個 FileWriter 對象。
FileWriter(FileDescriptor fd)
構造與某個文件描述符相關聯的 FileWriter 對象。
FileWriter(String fileName)
根據給定的文件名構造一個 FileWriter 對象。
FileWriter(String fileName, boolean append)
根據給定的文件名以及指示是否附加寫入數據的 boolean 值來構造 FileWriter 對象。

 

 

package com.pb.io.demo1;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.util.Scanner;/* * close:關閉流,會將流關閉,不能再使用 * flush:flush刷新后,流可以繼續使用, */public class WriterDemo {    public static void main(String[] args) {        Scanner input=new Scanner(System.in);        File file=null; //文件        FileWriter fw=null; //字符輸出流        try {            file=new File("d:/demo.txt");            // fw=new FileWriter(file);//如果有這個文件就會覆蓋              //如果要追加到文件內容后面就使用true             fw=new FileWriter(file,true);             System.out.println("請輸入內容,請輸入 over后結束");             String str=null; //接收輸入的內容             char [] buf=new char[1024];//定義緩沖區大小             do{                  str=input.nextLine();                  buf=str.toCharArray();//轉換為字符數組                  fw.write(buf); //將字符數組寫入                  fw.flush();//刷新流             }while(!str.equals("over"));        } catch (IOException e) {            e.printStackTrace();        }finally{            //使用finally關閉流            try {                if(fw!=null)                fw.close();            } catch (IOException e) {                e.printStackTrace();            }        }         System.out.println("寫入結束");    }    }

 

 

 

 

3.2、FileReader

構造方法摘要
FileReader(File file)
在給定從中讀取數據的 File 的情況下創建一個新 FileReader。
FileReader(FileDescriptor fd)
在給定從中讀取數據的 FileDescriptor 的情況下創建一個新 FileReader。
FileReader(String fileName)
在給定從中讀取數據的文件名的情況下創建一個新 FileReader。

 

3.3示例 單個字符讀取

 

package com.pb.io.demo1;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;/* * 單個字符讀取 */public class FileReaderDemo {    public static void main(String[] args) {        File file=null; //文件        FileReader fr=null; //字符輸入流            try {            file=new File("d:/demo.txt");            fr=new FileReader(file);            int  len=0;//接收讀出內容                        while((len=fr.read())!=-1){                System.out.println((char)len);            }        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }finally{            try {                //關閉流                if(fr!=null)                fr.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }}

 

 

 

3.4、示例 數組方式讀取 建議使用

 

package com.pb.io.demo1;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.Arrays;/* * 通過字符數組 讀取 */public class FileReaderDemo {    public static void main(String[] args) {        File file=null; //文件        FileReader fr=null; //字符輸入流            try {            file=new File("d:/demo.txt");            fr=new FileReader(file);            //接收讀出內容數組            char [] buf=new char [1024]; //一般為1024的整數倍            int len=0;            while((len=fr.read(buf))!=-1){ //讀取內容到字符數組                System.out.println(new String(buf,0,len));//讀有多少,就輸出多少                            }        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }finally{            try {                //關閉流                if(fr!=null)                fr.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }}

 

 

 

四、完整和復制文件

4.1、字符輸入流和字符輸入流

 

package com.pb.io.demo1;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.util.Scanner;public class FileWriterAndFileReader {    public static void main(String[] args) {        File file = new File("d://demo.txt");        Output(file);        input(file);    }    // 寫入文件    private static void Output(File file) {        FileWriter fw = null;        Scanner input = new Scanner(System.in);        try {            fw = new FileWriter(file, true);            // 聲明變量來接收用戶輸入            System.out.println("請輸入要寫入的內容:輸入over結束");            String str = null;            // 聲明緩沖區            char[] buf = new char[1024];            do {                str = input.nextLine(); // 接收用戶輸入                buf = str.toCharArray(); // 轉換為數組                fw.write(buf, 0, buf.length);// 寫入            } while (!(str.equals("over")));        } catch (IOException e) {            e.printStackTrace();        } finally {            if (fw != null) {                try {                    fw.close();                } catch (IOException e) {                    e.printStackTrace();                }            }        }    }    // 讀寫文件    private static void input(File file) {        FileReader fr = null;        try {            fr = new FileReader(file);            // 定義字符數組            char[] buf = new char[1024];// 緩沖區大小            int len = 0;// 長度讀取的字符個數            while ((len = fr.read(buf)) != -1) {                System.out.println(new String(buf, 0, len));            }        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        } finally {            if (fr != null) {                try {                    fr.close();                } catch (IOException e) {                    e.printStackTrace();                }            }        }    }}

 

 

 

4.2、復制文件

 

package com.pb.io.demo1;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;/** * 復制的原理 將一個文件存儲到另一個文件中 邊讀邊寫 先讀再寫 * */public class CopyFileDemo {    public static void main(String[] args) {        File soure = new File("d://demo.txt");        File objFile = new File("e://q.txt");        copy1(soure, objFile);        copy2(soure, objFile);    }    /*     * 讀一個復制一個     */    public static void copy1(File soure, File objFile) {        FileReader fr = null;        FileWriter fw = null;        try {            // 聲明讀,寫流對象            fr = new FileReader(soure);            fw = new FileWriter(objFile,true);            int ch = 0;            int count=0;            // 開始讀            while ((ch = fr.read()) != -1) {                count++;                System.out.println("正在讀取"+count+"行");                fw.write(ch);                fw.write("/r/n"); //換行                System.out.println("正在寫入"+count+"行");            }            System.out.println("讀寫完成");        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        } finally {            try {                if (fw != null)                    fw.close();            } catch (IOException e) {                e.printStackTrace();            }            try {                if (fr != null)                    fr.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }    /*     * 數組方式讀取復制     */    public static void copy2(File soure, File objFile) {        FileReader fr = null;        FileWriter fw = null;        try {            // 聲明讀,寫流對象            fr = new FileReader(soure);            fw = new FileWriter(objFile,true);            int ch = 0;            int count=0;            char [] buf=new char[1024];            // 開始讀            while ((ch = fr.read(buf)) != -1) {                count++;                System.out.println("正在讀取"+count+"行");                fw.write(buf,0,ch);                fw.write("/r/n"); //換行                System.out.println("正在寫入"+count+"行");            }            System.out.println("讀寫完成");        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        } finally {            try {                if (fw != null)                    fw.close();            } catch (IOException e) {                e.printStackTrace();            }            try {                if (fr != null)                    fr.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }}

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品激情视频| 久久久久久久久久久av| 欧美贵妇videos办公室| 最近中文字幕2019免费| 欧美黑人极品猛少妇色xxxxx| 欧美精品在线极品| 日本道色综合久久影院| 国产日韩欧美视频| 欧美大片免费观看在线观看网站推荐| 久久精品国产亚洲精品| 成人a视频在线观看| 久久成人人人人精品欧| 精品福利樱桃av导航| 91久久国产综合久久91精品网站| 亚洲国产高清自拍| 日日骚久久av| 成人欧美在线视频| 日韩在线免费观看视频| 久久亚洲影音av资源网| 色播久久人人爽人人爽人人片视av| 欧美激情国产高清| 亚洲精品在线91| 国产午夜精品麻豆| 97视频免费在线看| 欧美精品在线看| 欧美人成在线视频| 日韩av在线网页| 国产亚洲欧洲黄色| 91精品国产色综合久久不卡98口| 美女精品久久久| 欧美成人黄色小视频| 国产精品自拍网| 亚洲一区二区三区四区视频| 欧美高清视频免费观看| 国内精品模特av私拍在线观看| 久久久久久久久久亚洲| 最近2019年手机中文字幕| 在线播放日韩精品| 精品美女久久久久久免费| 伊人久久男人天堂| 色哟哟入口国产精品| 尤物yw午夜国产精品视频| 国产91精品高潮白浆喷水| 一区二区三区在线播放欧美| 欧美激情国产高清| x99av成人免费| 日韩电影第一页| 亚洲一区二区精品| 亚洲黄页网在线观看| 亚洲国产成人精品久久| 91精品国产99| 91在线视频精品| 亚洲摸下面视频| 日韩男女性生活视频| 国产91成人video| 亚洲欧洲视频在线| 日韩高清av一区二区三区| 91精品国产免费久久久久久| 精品亚洲一区二区三区| 中文日韩在线观看| 亚洲精品福利免费在线观看| 国产一区视频在线播放| 欧美视频专区一二在线观看| 精品国产老师黑色丝袜高跟鞋| 日韩免费高清在线观看| 成人精品视频久久久久| 日韩久久免费电影| 亚洲国产成人在线视频| 91热精品视频| 国产精品自产拍在线观看中文| 欧美成人精品在线播放| 另类美女黄大片| 亚洲二区中文字幕| 日韩中文字幕免费视频| 国产91在线高潮白浆在线观看| 亚洲色图13p| 欧美人与性动交| 久久影视免费观看| 在线亚洲国产精品网| 精品久久久久久久久久久| 中文精品99久久国产香蕉| 亚洲一区二区三区成人在线视频精品| 亚洲精品日产aⅴ| 久久福利视频网| 欧美日韩另类字幕中文| 久久伊人91精品综合网站| 九九热这里只有精品免费看| 少妇高潮 亚洲精品| 欧美性极品xxxx做受| 久久影院资源站| 97精品在线视频| 97免费视频在线| 亚洲国产天堂久久综合| 国产99久久精品一区二区永久免费| 亚洲韩国欧洲国产日产av| 黄色一区二区在线观看| 91精品国产乱码久久久久久蜜臀| 国产视频精品自拍| 欧美激情在线观看| 亚洲国产成人精品久久久国产成人一区| 91久久精品美女| 国产a级全部精品| 久久久91精品国产一区不卡| 国产亚洲欧洲高清一区| 欧美疯狂性受xxxxx另类| 亚洲人成毛片在线播放| 欧美日韩国产第一页| 精品中文字幕在线2019| 日韩在线视频观看正片免费网站| 欧美激情图片区| 久久亚洲精品一区| 国产亚洲欧美日韩一区二区| 亚洲国产精品成人一区二区| 国产99久久精品一区二区 夜夜躁日日躁| 亚洲а∨天堂久久精品喷水| 视频在线一区二区| 精品久久久久人成| 精品国产美女在线| 中文字幕免费精品一区| 国产精品视频久| 久久久精品一区二区三区| 欧美国产乱视频| 欧美精品国产精品日韩精品| 亚洲成人性视频| 欧美成人精品激情在线观看| 日韩视频免费中文字幕| 国产福利精品在线| 久久全国免费视频| 日韩国产一区三区| 中文字幕av一区| 中文字幕在线观看日韩| 国产精品白丝jk喷水视频一区| 国产精品久在线观看| 亚洲精品91美女久久久久久久| 亚洲丝袜在线视频| 精品亚洲一区二区三区在线播放| 黑人精品xxx一区| 日本成熟性欧美| 亚洲国产一区二区三区四区| 免费av一区二区| 日韩精品电影网| 中文字幕亚洲欧美| 亚洲电影在线看| 欧美疯狂xxxx大交乱88av| 尤物yw午夜国产精品视频明星| 日韩成人在线免费观看| 热久久视久久精品18亚洲精品| yw.139尤物在线精品视频| 国外成人在线播放| 北条麻妃99精品青青久久| 日韩美女视频免费在线观看| 国产女同一区二区| 久久久久亚洲精品国产| 久久久久久噜噜噜久久久精品| 亚洲精品99久久久久中文字幕| 国产精品美女视频网站| 日本欧美黄网站| 久久久999精品视频| 日韩欧美精品在线观看| 国产成人短视频| 亚洲男人的天堂网站| 亚洲人成五月天| 91精品国产乱码久久久久久久久| 亚州欧美日韩中文视频|