最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java之通過(guò)OutputStream寫(xiě)入文件與文件復(fù)制問(wèn)題

 更新時(shí)間:2023年04月11日 10:16:59   作者:程序員大陽(yáng)  
這篇文章主要介紹了Java之通過(guò)OutputStream寫(xiě)入文件與文件復(fù)制問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

通過(guò)OutputStream寫(xiě)入文件與文件復(fù)制

1.知識(shí)點(diǎn)

1,首先不管是InputStream讀read,還是OutputStream寫(xiě)write,都支持讀寫(xiě)一定長(zhǎng)度的byte[]。

2,當(dāng)然,還支持一個(gè)字節(jié)一個(gè)字節(jié)的讀寫(xiě),那么一個(gè)字節(jié)一個(gè)字節(jié)的讀寫(xiě),讀出來(lái)的字節(jié)和寫(xiě)入的字節(jié)都是用的int類(lèi)型的參數(shù)。

3,int參數(shù)只會(huì)使用它的8個(gè)二進(jìn)制位,也就是說(shuō)類(lèi)似于將int強(qiáng)行轉(zhuǎn)換為byte,我感覺(jué)很無(wú)聊的設(shè)計(jì),還不如直接用byte作為參數(shù),這樣搞是因?yàn)閕nt太火嗎?

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

2.寫(xiě)入文件示例

寫(xiě)入對(duì)象FILE_FOR_WRITE中

//工具類(lèi)
package com.maoge.stream;
import java.io.File;
public class StreamUtils {
?? ?//用于定義每次讀取的長(zhǎng)度
?? ?public static final int BUFFER_LENGTH=512;
?? ?//文件對(duì)象
?? ?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");?
?? ?}
}

寫(xiě)入過(guò)程

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ù)制圖片,因?yàn)閳D片也是二進(jìn)制位組成的

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

//工具類(lèi)
package com.maoge.stream;
import java.io.File;
public class StreamUtils {
?? ?//用于定義每次讀取的長(zhǎng)度
?? ?public static final int BUFFER_LENGTH=512;
?? ?//文件對(duì)象
?? ?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ù)制過(guò)程,該方法是OutputStreamDemo類(lèi)的靜態(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寫(xiě)入文件問(wèn)題(FileOutputStream的使用)

實(shí)現(xiàn)在控制臺(tái)寫(xiě)入相關(guān)文字,并添加到指定的文件中,并實(shí)現(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("請(qǐng)輸入");
?? ?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é)

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

相關(guān)文章

  • 簡(jiǎn)要分析Java多進(jìn)程編程的并發(fā)控制

    簡(jiǎn)要分析Java多進(jìn)程編程的并發(fā)控制

    這篇文章介紹了簡(jiǎn)要分析Java多進(jìn)程編程的并發(fā)控制,主要針對(duì)內(nèi)存獲取方面,需要的朋友可以參考下
    2015-11-11
  • SpringBoot集成Redisson實(shí)現(xiàn)消息隊(duì)列的示例代碼

    SpringBoot集成Redisson實(shí)現(xiàn)消息隊(duì)列的示例代碼

    本文介紹了如何在SpringBoot中通過(guò)集成Redisson來(lái)實(shí)現(xiàn)消息隊(duì)列的功能,包括RedisQueue、RedisQueueInit、RedisQueueListener、RedisQueueService等相關(guān)組件的實(shí)現(xiàn)和測(cè)試,感興趣的可以了解一下
    2024-10-10
  • springboot實(shí)現(xiàn)用戶(hù)名查找用戶(hù)功能

    springboot實(shí)現(xiàn)用戶(hù)名查找用戶(hù)功能

    本文主要介紹了springboot實(shí)現(xiàn)用戶(hù)名查找用戶(hù)功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • spring boot如何使用POI讀取Excel文件

    spring boot如何使用POI讀取Excel文件

    本文主要介紹使用POI進(jìn)行Excel文件的相關(guān)操作,涉及讀取文件,獲取sheet表格,對(duì)單元格內(nèi)容進(jìn)行讀寫(xiě)操作,以及合并單元格的操作
    2021-08-08
  • java數(shù)據(jù)隨機(jī)分頁(yè)實(shí)現(xiàn)方案

    java數(shù)據(jù)隨機(jī)分頁(yè)實(shí)現(xiàn)方案

    本文主要介紹了java數(shù)據(jù)隨機(jī)分頁(yè)實(shí)現(xiàn)方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • java書(shū)店系統(tǒng)畢業(yè)設(shè)計(jì) 用戶(hù)模塊(2)

    java書(shū)店系統(tǒng)畢業(yè)設(shè)計(jì) 用戶(hù)模塊(2)

    這篇文章主要介紹了java書(shū)店系統(tǒng)畢業(yè)設(shè)計(jì),第二步系統(tǒng)總體設(shè)計(jì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 通過(guò)java記錄數(shù)據(jù)持續(xù)變化時(shí)間代碼解析

    通過(guò)java記錄數(shù)據(jù)持續(xù)變化時(shí)間代碼解析

    這篇文章主要介紹了通過(guò)java記錄數(shù)據(jù)持續(xù)變化時(shí)間代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Java JDBC自定義封裝工具類(lèi)的步驟和完整代碼

    Java JDBC自定義封裝工具類(lèi)的步驟和完整代碼

    這篇文章主要給大家介紹了關(guān)于Java JDBC自定義封裝工具類(lèi)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Reactor定制一個(gè)生產(chǎn)的WebClient實(shí)現(xiàn)示例

    Reactor定制一個(gè)生產(chǎn)的WebClient實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了Reactor定制一個(gè)生產(chǎn)的WebClient實(shí)現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Java實(shí)現(xiàn)字符串的分割(基于String.split()方法)

    Java實(shí)現(xiàn)字符串的分割(基于String.split()方法)

    Java中的我們可以利用split把字符串按照指定的分割符進(jìn)行分割,然后返回字符串?dāng)?shù)組,下面這篇文章主要給大家介紹了關(guān)于Java實(shí)現(xiàn)字符串的分割的相關(guān)資料,是基于jDK1.8版本中的String.split()方法,需要的朋友可以參考下
    2022-09-09

最新評(píng)論

许昌市| 碌曲县| 沾益县| 库车县| 阳东县| 赤峰市| 丽江市| 黄山市| 麟游县| 沾化县| 元谋县| 哈巴河县| 万盛区| 平江县| 新晃| 固阳县| 弥勒县| 绥中县| 泰来县| 卓资县| 桐城市| 扬州市| 贵溪市| 巍山| 探索| 尼玛县| 永登县| 通城县| 商丘市| 睢宁县| 连南| 化德县| 横峰县| 黑龙江省| 车致| 老河口市| 宜章县| 桦南县| 浦城县| 保山市| 辉南县|