欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2023年04月11日 10:16:59   作者:程序員大陽  
這篇文章主要介紹了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");?? ?
?? ?}
}

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用cmd根據(jù)WSDL網(wǎng)址生成java客戶端代碼的實現(xiàn)

    使用cmd根據(jù)WSDL網(wǎng)址生成java客戶端代碼的實現(xiàn)

    這篇文章主要介紹了使用cmd根據(jù)WSDL網(wǎng)址生成java客戶端代碼的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Java微信公眾平臺開發(fā)(2) 微信服務(wù)器post消息體的接收

    Java微信公眾平臺開發(fā)(2) 微信服務(wù)器post消息體的接收

    這篇文章主要為大家詳細介紹了Java微信公眾平臺開發(fā)第二步,微信服務(wù)器post消息體的接收,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Springboot中動態(tài)語言groovy介紹

    Springboot中動態(tài)語言groovy介紹

    Apache的Groovy是Java平臺上設(shè)計的面向?qū)ο缶幊陶Z言,這門動態(tài)語言擁有類似Python、Ruby和Smalltalk中的一些特性,可以作為Java平臺的腳本語言使用,這篇文章主要介紹了springboot中如何使用groovy,需要的朋友可以參考下
    2022-09-09
  • java 中Spark中將對象序列化存儲到hdfs

    java 中Spark中將對象序列化存儲到hdfs

    這篇文章主要介紹了java 中Spark中將對象序列化存儲到hdfs的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • 全面解析@InsertProvider執(zhí)行原理

    全面解析@InsertProvider執(zhí)行原理

    這篇文章主要介紹了全面解析@InsertProvider執(zhí)行原理,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • java利用oss實現(xiàn)下載功能

    java利用oss實現(xiàn)下載功能

    這篇文章主要為大家詳細介紹了java利用oss實現(xiàn)下載功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • JAVAsynchronized原理詳解

    JAVAsynchronized原理詳解

    這篇文章主要介紹了Java中synchronized實現(xiàn)原理詳解,涉及synchronized實現(xiàn)同步的基礎(chǔ),Java對象頭,Monitor,Mark Word,鎖優(yōu)化,自旋鎖等相關(guān)內(nèi)容,具有一定借鑒價值,需要的朋友可以參考下
    2021-08-08
  • java中的transient關(guān)鍵字解讀

    java中的transient關(guān)鍵字解讀

    這篇文章主要介紹了java中的transient關(guān)鍵字解讀,transient關(guān)鍵字的主要作用就是讓某些被transient關(guān)鍵字修飾的成員屬性變量不被序列化,實際上也正是因此,在學(xué)習(xí)過程中很少用得上序列化操作,一般都是在實際開發(fā)中,需要的朋友可以參考下
    2023-09-09
  • Socket編程簡單示例(聊天服務(wù)器)

    Socket編程簡單示例(聊天服務(wù)器)

    socket編程是在不同的進程間進行網(wǎng)絡(luò)通訊的一種協(xié)議,下面這篇文章主要給大家介紹了關(guān)于Socket編程簡單示例的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • Spring框架初始化解析

    Spring框架初始化解析

    這篇文章主要介紹了Spring框架初始化解析,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11

最新評論