溫馨提示×

溫馨提示×

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

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

Java之怎么通過OutputStream寫入文件與文件復制

發布時間:2023-04-11 15:57:19 來源:億速云 閱讀:437 作者:iii 欄目:開發技術

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

    通過OutputStream寫入文件與文件復制

    1.知識點

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

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

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

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

    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.文件復制示例

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

    源文件test.jpg這個需要找個圖片,目的文件result.jpg這個是復制后生產的

    //工具類
    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"); 
        }
    }

    復制過程,該方法是OutputStreamDemo類的靜態方法。

    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的使用)

    實現在控制臺寫入相關文字,并添加到指定的文件中,并實現讀取文件內容

    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);    //反復定義新變量:每一次都 重新定義新變量,接收新讀取的數據
     
            System.out.println(str);        //反復輸出新變量:每一次都 輸出重新定義的新變量
        }
        fin.close();
        }
        public static void main(String[] args) throws IOException {
            
            Fileout out=new Fileout();
            out.f("f://student.txt");    
        }
    }

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

    向AI問一下細節

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

    AI

    亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女