這篇文章主要介紹了Java之怎么通過OutputStream寫入文件與文件復制的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Java之怎么通過OutputStream寫入文件與文件復制文章都會有所收獲,下面我們一起來看看吧。
1,首先不管是InputStream讀read,還是OutputStream寫write,都支持讀寫一定長度的byte[]。
2,當然,還支持一個字節一個字節的讀寫,那么一個字節一個字節的讀寫,讀出來的字節和寫入的字節都是用的int類型的參數。
3,int參數只會使用它的8個二進制位,也就是說類似于將int強行轉換為byte,我感覺很無聊的設計,還不如直接用byte作為參數,這樣搞是因為int太火嗎?
4,所以所謂的復制,就是把所有的字節讀出來,然后寫入文件即可。
寫入對象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()); } } } }
直接演示復制圖片,因為圖片也是二進制位組成的
源文件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()); } } }
實現在控制臺寫入相關文字,并添加到指定的文件中,并實現讀取文件內容
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寫入文件與文件復制”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。