国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java中的IO流之輸出流|樂(lè)字節(jié)

CoderStudy / 2112人閱讀

摘要:大家好,樂(lè)字節(jié)小樂(lè)又來(lái)了。上一篇給大家?guī)?lái)的是中的流之輸入流樂(lè)字節(jié),本文將繼續(xù)講述流之輸出流。一輸出流抽象類和和也非常相似。從上述的字節(jié)數(shù)組中,讀取字符串。

大家好,樂(lè)字節(jié)小樂(lè)又來(lái)了。上一篇給大家?guī)?lái)的是:Java中的IO流之輸入流|樂(lè)字節(jié),本文將繼續(xù)講述IO流之輸出流。

一、輸出流 1、抽象類:OutputStream 和 Writer

OutputStream和Writer也非常相似。
在OutputStream 里包含如下方法:

在 Writer 中, 因?yàn)樽址髦苯右宰址鳛椴僮鲉挝唬?Writer 可以用字符串來(lái)代替字符數(shù)組,即以String對(duì)象來(lái)作為參數(shù)。 包含如下方法:

2、文件節(jié)點(diǎn)類: FileOutputStream 和 FileWriter

FileOutputStream 和 FileWriter,它們都是節(jié)點(diǎn)流,直接和指定文件關(guān)聯(lián)。

public class WriteFile {
    public static void main(String[] args) {
        //1、建立聯(lián)系   File對(duì)象   源頭 目的地
        File dest=new File("c:/IO/print.txt");
        //2、選擇流    文件輸出流   OutputStream FileOutputStream
        OutputStream out=null;
        //以追加形式寫(xiě)出文件  必須為true 否則會(huì)覆蓋
        try {
            out=new FileOutputStream(dest,true);
            //3、操作
            String str="shsxt is very good 
 good good good";
            //字符串轉(zhuǎn)成字節(jié)數(shù)組
            byte[] data=str.getBytes();
            out.write(data,0,data.length);
            out.flush();//強(qiáng)制刷新出去
            
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.out.println("文件未找到");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.out.println("文件寫(xiě)出失敗");
        }finally{
            try {
                if(out!=null){
                out.close();
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.println("關(guān)閉輸出流失敗");
            }
        }
    }
}
//1、創(chuàng)建源
        File dest=new File("f:/IO/char.txt");
//2、選擇流
        Writer    wr=new FileWriter(dest,true);
//3、寫(xiě)出
    String str="鋤禾日當(dāng)午
碼農(nóng)真辛苦
一本小破書(shū)
一讀一上午";
           wr.write(str);
        //追加內(nèi)容
        wr.append("我就是追加進(jìn)去的");
        wr.flush();//強(qiáng)制刷出
//4、關(guān)閉資源
        wr.close();

結(jié)合輸入輸出流,可以實(shí)現(xiàn)文件拷貝

public static void copyFile(String srcPath, String destPath) throws FileNotFoundException,IOException{
        // 1、建立聯(lián)系 源(存在且為文件) 目的地(文件可以不存在)
        File src = new File(srcPath);
        File dest = new File(destPath);
        if(!src.isFile()){//不是文件或者為null時(shí)拋出異常
            System.out.println("只能拷貝文件");
            throw new IOException("只能拷貝文件");
        }
        // 2、選擇流
        InputStream in = new FileInputStream(src);
        OutputStream out = new FileOutputStream(dest);
        // 3、操作
        byte[] flush = new byte[1024];
        int len = 0;
        // 讀取
        while (-1 != (len = in.read(flush))) {
            // 寫(xiě)出
            out.write(flush, 0, len);
        }
        out.flush();// 強(qiáng)制刷出
        // 關(guān)閉流 先打開(kāi)的后關(guān)閉
        out.close();
        in.close();
    }
3、緩沖處理流:BufferedOutputStream 和 BufferedWriter

緩沖流提升性能,BufferedWriter存在新增方法newLine(),不能發(fā)生多態(tài)

public static void copyFile(String srcPath, String destPath) throws FileNotFoundException,IOException{
        // 1、建立聯(lián)系 源(存在且為文件) 目的地(文件可以不存在)
        File src = new File(srcPath);
        File dest = new File(destPath);
        if(!src.isFile()){//不是文件或者為null時(shí)拋出異常
            System.out.println("只能拷貝文件");
            throw new IOException("只能拷貝文件");
        }
        // 2、選擇流
        InputStream in = new BufferedInputStream(new FileInputStream(src));
        OutputStream out =new BufferedOutputStream(new FileOutputStream(dest));
        // 3、操作
        byte[] flush = new byte[1024];
        int len = 0;
        // 讀取
        while (-1 != (len = in.read(flush))) {
            // 寫(xiě)出
            out.write(flush, 0, len);
        }
        out.flush();// 強(qiáng)制刷出
        // 關(guān)閉流 先打開(kāi)的后關(guān)閉
        out.close();
        in.close();
    }
}    

                      //1、創(chuàng)建源       僅限于    字符的純文本
        File src=new File("f:/char.txt");
        File dest=new File("f:/testIO/char.txt");
        //2、選擇流
    BufferedReader reader=new BufferedReader(new FileReader(src));
BufferedWriter wr=new BufferedWriter(new  FileWriter(dest,true));pend(msg2); 
                     //3、新增方法操作
        String line=null;
        while(null!=(line=reader.readLine())){
            wr.write(line);
            //wr.append("
");
            //換行符號(hào)
            wr.newLine();
        }
        wr.flush();//強(qiáng)制刷出
// 4、關(guān)閉流 先打開(kāi)的后關(guān)閉
        out.close();
        in.close();
4、轉(zhuǎn)換處理流:OutputStreamWriter

可以處理文件的字符集,即將文件按指定字符集進(jìn)行編碼存儲(chǔ)。

//寫(xiě)出文件    編碼
BufferedWriter bw=new BufferedWriter(
    new OutputStreamWriter(
        new BufferedOutputStream(
            new FileOutputStream(
                new File("f:/testIO/char.txt")
            )
        ),"utf-8"
    )
);
    String info=null;
    while(null!=(info=br.readLine())){
        bw.write(info);
        bw.newLine();
    }
    bw.flush();
    bw.close();
5、字節(jié)數(shù)組節(jié)點(diǎn)類: ByteArrayOutputStream
/**
* 字節(jié)數(shù)組輸出流:操作與文件輸出流有些不同,有新增方法,所以不可以使用多態(tài)
* @throws IOException 
*/
    public static byte[] write() throws IOException{
        //目的地    字節(jié)數(shù)組
        byte[]dest;
    //選擇流    不同點(diǎn):不需要將目的地放入new ByteArrayOutputStream()
        ByteArrayOutputStream bos=new ByteArrayOutputStream();
    //操作    寫(xiě)出, 可以當(dāng)作將本地的內(nèi)容通過(guò)字節(jié)數(shù)組寫(xiě)入服務(wù)器
        String msg="字節(jié)數(shù)組輸入流:操作與文件輸入流操作一致";
        byte[]info=msg.getBytes();
        //將內(nèi)容寫(xiě)入bos
        bos.write(info,0,info.length);
    //不同點(diǎn):獲取數(shù)據(jù)    toByteArray():是將字節(jié)數(shù)組輸出流轉(zhuǎn)為字節(jié)數(shù)組
        dest=bos.toByteArray();
        //釋放資源
        bos.close();//由于bos在jvm中,所以關(guān)閉與否不影響
        return dest;
    }
  

再來(lái)看幾個(gè)作業(yè)題,大家不妨思考思考。
1、Reader和Writer的基本特點(diǎn)是?
2、FileReader和FileWriter的作用是?
3、BufferedReader和BufferedWriter的作用是?
4、word文檔能使用字符流操作嗎?為什么?
5、使用BufferedReader和BufferedWriter實(shí)現(xiàn)文本文件的拷貝
6、什么情況下可以使用字符流拷貝文件夾?什么情況下不能?拷貝文件夾應(yīng)該使用字符流還是字節(jié)流?
7、拷貝文件 使用哪些流?
8、InputStreamReader和OutputStreamWriter的作用。
9、ByteArrayInputStream與 ByteArrayOutputStream的數(shù)據(jù)源是什么?
10、為什么ByteArrayOutputStream 不推薦使用匿名?
11、將”堅(jiān)信沒(méi)有學(xué)不會(huì)的知識(shí),只有不想學(xué)的知識(shí)”寫(xiě)出到字節(jié)數(shù)組中。
12、從上述的 字節(jié)數(shù)組中,讀取字符串。
13、DataInputStream和DataOutputStream的特點(diǎn)是?
14、將3.14 寫(xiě)出到字節(jié)數(shù)組中,再進(jìn)行讀取
15、序列化和反序列化指的是什么?
16、想序列化某個(gè)類的對(duì)象,該類必須實(shí)現(xiàn)Serializable接口嗎?
17、說(shuō)說(shuō)Serializable接口的特點(diǎn)。
18、transient的作用是?
19、使用ObjectInputstream和ObjectOutputStream實(shí)現(xiàn)將某個(gè)對(duì)象存儲(chǔ)到硬盤(pán)上,然后再讀到程序中。
20、PrintStream打印流經(jīng)常用于什么情況?

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/75726.html

相關(guān)文章

  • Java中的IO輸入|樂(lè)字節(jié)

    摘要:上一篇寫(xiě)到了流,這篇文章著重談?wù)勢(shì)斎肓鳎傧麓卧僬f(shuō)輸出流。一輸入流字節(jié)流和字符流的操作方式幾乎完全一樣,只是操作的數(shù)據(jù)單元不同而已。返回結(jié)果為時(shí)表明到了輸入流的結(jié)束點(diǎn)。 親愛(ài)的樂(lè)字節(jié)的小伙伴們,小樂(lè)又來(lái)分享Java技術(shù)文章了。上一篇寫(xiě)到了IO流,這篇文章著重 談?wù)勢(shì)斎肓鳎傧麓卧僬f(shuō)輸出流。 一、 輸入流 字節(jié)流和字符流的操作方式幾乎完全一樣,只是操作的數(shù)據(jù)單元不同而已 。字節(jié)流可 以操...

    elliott_hu 評(píng)論0 收藏0
  • Java網(wǎng)絡(luò)編程探究|樂(lè)字節(jié)

    摘要:換句話說(shuō),套接字起到通信端點(diǎn)的作用。單個(gè)套接字是一個(gè)端點(diǎn),而一對(duì)套接字則構(gòu)成一個(gè)雙向通信信道,使非關(guān)聯(lián)進(jìn)程可以在本地或通過(guò)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)交換。 大家好,我是樂(lè)字節(jié)小樂(lè),上次給大家講述了Java中的IO流之輸出流|樂(lè)字節(jié),本文將會(huì)給大家講述網(wǎng)絡(luò)編程。 主要內(nèi)容如下: 網(wǎng)絡(luò) 網(wǎng)絡(luò)分層 列表項(xiàng)目 IP位置 端口port 網(wǎng)絡(luò)編程 showImg(https://segmentfault.c...

    Kahn 評(píng)論0 收藏0
  • 樂(lè)字節(jié)Java之file、IO基礎(chǔ)知識(shí)和操作步驟

    摘要:流分類由此可見(jiàn),流很龐大從不同角度進(jìn)行分類數(shù)據(jù)分類按處理數(shù)據(jù)單位分為字節(jié)流和字符流。處理數(shù)據(jù)是音頻視頻文本等一切為字節(jié)流,僅能處理文本的為字符流。功能分類節(jié)點(diǎn)流和處理流。從向一個(gè)特定的設(shè)備磁盤(pán)網(wǎng)絡(luò)等讀寫(xiě)數(shù)據(jù)的流稱為節(jié)點(diǎn)流,也常被稱為低級(jí)流。 嗨嘍,小樂(lè)又來(lái)了,今天要給大家送上的技術(shù)文章是Java重點(diǎn)知識(shí)-IO流。 先來(lái)看看IO流的思維導(dǎo)圖吧。showImg(https://segmen...

    pkhope 評(píng)論0 收藏0
  • Java編程基礎(chǔ)23——IO(其他)&Properties

    摘要:但它融合了和的功能。支持對(duì)隨機(jī)訪問(wèn)文件的讀取和寫(xiě)入。的概述和作為集合的使用了解的概述類表示了一個(gè)持久的屬性集。可保存在流中或從流中加載。屬性列表中每個(gè)鍵及其對(duì)應(yīng)值都是一個(gè)字符串。 1_序列流(了解) 1.什么是序列流 序列流可以把多個(gè)字節(jié)輸入流整合成一個(gè), 從序列流中讀取數(shù)據(jù)時(shí), 將從被整合的第一個(gè)流開(kāi)始讀, 讀完一個(gè)之后繼續(xù)讀第二個(gè), 以此類推. 2.使用方式 整合兩個(gè): S...

    vvpale 評(píng)論0 收藏0
  • 樂(lè)字節(jié)-Java8新特性之Stream(上)

    摘要:需要注意的是很多流操作本身就會(huì)返回一個(gè)流,所以多個(gè)操作可以直接連接起來(lái),如下圖這樣,操作可以進(jìn)行鏈?zhǔn)秸{(diào)用,并且并行流還可以實(shí)現(xiàn)數(shù)據(jù)流并行處理操作。為集合創(chuàng)建并行流。 上一篇文章,小樂(lè)給大家介紹了《Java8新特性之方法引用》,下面接下來(lái)小樂(lè)將會(huì)給大家介紹Java8新特性之Stream,稱之為流,本篇文章為上半部分。 1、什么是流? Java Se中對(duì)于流的操作有輸入輸出IO流,而Jav...

    dingda 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<