您好,登錄后才能下訂單哦!
這篇文章主要介紹了Java之怎么通過OutputStream寫入文件與文件復(fù)制的相關(guān)知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Java之怎么通過OutputStream寫入文件與文件復(fù)制文章都會有所收獲,下面我們一起來看看吧。
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é)讀出來,然后寫入文件即可。
寫入對象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()); } } } }
直接演示復(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()); } } }
實現(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è)資訊頻道。
免責聲明:本站發(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)容。