溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java之怎么通過OutputStream寫入文件與文件復(fù)制

發(fā)布時間:2023-04-11 15:57:19 來源:億速云 閱讀:257 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹了Java之怎么通過OutputStream寫入文件與文件復(fù)制的相關(guān)知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Java之怎么通過OutputStream寫入文件與文件復(fù)制文章都會有所收獲,下面我們一起來看看吧。

    通過OutputStream寫入文件與文件復(fù)制

    1.知識點

    1,首先不管是InputStream讀read,還是OutputStream寫write,都支持讀寫一定長度的byte[]。

    2,當然,還支持一個字節(jié)一個字節(jié)的讀寫,那么一個字節(jié)一個字節(jié)的讀寫,讀出來的字節(jié)和寫入的字節(jié)都是用的int類型的參數(shù)。

    3,int參數(shù)只會使用它的8個二進制位,也就是說類似于將int強行轉(zhuǎn)換為byte,我感覺很無聊的設(shè)計,還不如直接用byte作為參數(shù),這樣搞是因為int太火嗎?

    4,所以所謂的復(fù)制,就是把所有的字節(jié)讀出來,然后寫入文件即可。

    2.寫入文件示例

    寫入對象FILE_FOR_WRITE中

    //工具類
    package com.maoge.stream;
    import java.io.File;
    public class StreamUtils {
        //用于定義每次讀取的長度
        public static final int BUFFER_LENGTH=512;
        //文件對象
        public static File FILE_FOR_READ;
        public static File FILE_FOR_WRITE;
        static{
            FILE_FOR_READ=new File("C:\\test.txt"); 
            FILE_FOR_WRITE=new File("C:\\result.txt"); 
        }
    }

    寫入過程

    package com.maoge.stream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    public class OutputStreamDemo {
        public static void main(String[] args){
            writeToFile();
        }
        public static void writeToFile(){
            byte buffer[]=buffer=new String("hello world!").getBytes();
            OutputStream out=null;
            try {
                out = new FileOutputStream(StreamUtils.FILE_FOR_WRITE);
                out.write(buffer, 0, buffer.length);
            } catch (Exception ex) {
                System.out.println(ex.toString());
            }finally{
                try {
                    out.close();
                } catch (IOException ioEx) {
                    System.out.println(ioEx.toString());
                }
            }    
        }
    }

    3.文件復(fù)制示例

    直接演示復(fù)制圖片,因為圖片也是二進制位組成的

    源文件test.jpg這個需要找個圖片,目的文件result.jpg這個是復(fù)制后生產(chǎn)的

    //工具類
    package com.maoge.stream;
    import java.io.File;
    public class StreamUtils {
        //用于定義每次讀取的長度
        public static final int BUFFER_LENGTH=512;
        //文件對象
        public static File FILE_FOR_READ;
        public static File FILE_FOR_WRITE;
        static{
            FILE_FOR_READ=new File("C:\\test.jpg"); 
            FILE_FOR_WRITE=new File("C:\\result.jpg"); 
        }
    }

    復(fù)制過程,該方法是OutputStreamDemo類的靜態(tài)方法。

    public static void fileCopy(){
            FileInputStream in=null;
            FileOutputStream out=null;
            try {
                in=new FileInputStream(StreamUtils.FILE_FOR_READ);
                out=new FileOutputStream(StreamUtils.FILE_FOR_WRITE);
                int c;
                while((c=in.read())!=-1)
                    out.write(c);
            } catch (Exception ex) {
                System.out.println(ex.toString());
            }finally{
                try {
                    in.close();
                } catch (IOException ioEx) {
                    System.out.println(ioEx.toString());
                }
                try {
                    out.close();
                } catch (IOException ioEx) {
                    System.out.println(ioEx.toString());
                }
            }
        }

    java寫入文件問題(FileOutputStream的使用)

    實現(xiàn)在控制臺寫入相關(guān)文字,并添加到指定的文件中,并實現(xiàn)讀取文件內(nèi)容

    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.Scanner;
     
    public class Fileout {
        Scanner inScanner = new Scanner(System.in);
        public void f(String address) throws IOException
        {
        
        FileOutputStream out=new FileOutputStream(address, true);
        String buf;
        System.out.println("請輸入");
        buf= inScanner.nextLine();
        byte buy[]=buf.getBytes();
        out.write(buy);
        
        FileInputStream fin=new FileInputStream(address);    
        byte[] bs=new byte[1024];    
        int count=0;    
     
        while((count=fin.read(bs))>0)                
        {
        
            
            String str=new String(bs,0,count);    //反復(fù)定義新變量:每一次都 重新定義新變量,接收新讀取的數(shù)據(jù)
     
            System.out.println(str);        //反復(fù)輸出新變量:每一次都 輸出重新定義的新變量
        }
        fin.close();
        }
        public static void main(String[] args) throws IOException {
            
            Fileout out=new Fileout();
            out.f("f://student.txt");    
        }
    }

    關(guān)于“Java之怎么通過OutputStream寫入文件與文件復(fù)制”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“Java之怎么通過OutputStream寫入文件與文件復(fù)制”知識都有一定的了解,大家如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

    向AI問一下細節(jié)

    免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI