1. 程式人生 > >Java中IO流的使用方法之字元流

Java中IO流的使用方法之字元流

整理源於Java核心技術精講
Writer比OutputStream 方便的一點在於可以直接使用String型資料輸出

Writer
繼承者FileWriter
Reader
繼承者FileReader

使用Writer類進行內容的輸出

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;

public class TestDemo {

    public static void main(String[] args) throws
Exception{ File file = new File("D:\\1\\test.txt"); if(file.exists()) { Writer w = new FileWriter(file);//使用子類例項化父類 String str = "hello world."; w.write(str); w.close(); } } }

使用Reader讀取資料

import java.io.File;
import
java.io.FileReader; import java.io.Reader; public class TestDemo { public static void main(String[] args) throws Exception{ File file = new File("D:\\1\\test.txt"); if(file.exists()) { Reader r = new FileReader(file); char[] data = new char[1024]; int
len = r.read(data); System.out.println(new String(data,0,len)); r.close(); } } }

位元組流字元流的區別:
位元組流針對的是終端如檔案;不關閉資源,仍然可以輸出。
字元流針對於緩衝區(記憶體),而後由緩衝區操作終端;不關閉資源,不會輸出,使用者可以自己呼叫flush()方法強制手工清空

思考題:模擬DOS系統的檔案拷貝命令,由初始化引數輸入原始檔和拷貝檔案的路徑,而後執行檔案拷貝操作。(考慮複製一個大檔案的情況,如500MB以上)

思路:實現檔案複製肯定使用的是位元組流,因為檔案有可能是圖片,有兩種實現方式

  1. 將複製內容讀取到記憶體,而後將所有內容一次說輸出到目標檔案
  2. 採用邊讀邊寫的方式進行復制

    方法二更為科學,尤其在檔案比較大的情況下

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class TestDemo {
    public static void main(String[] args) throws Exception{
        if(args.length != 2)
        {
            System.out.println("執行程式命令錯誤");
            System.exit(1);//程式退出,終止當前正在執行的java虛擬機器
        }
        long start = System.currentTimeMillis();//記錄開始時間毫秒為單位
        File infile = new File(args[0]);//要複製的檔案
        if(!infile.exists())
        {
             System.out.println("原始檔不存在");
             System.exit(1);
        }
        File outfile = new File(args[1]);//目標檔案
        InputStream input = new FileInputStream(infile);
        OutputStream output = new FileOutputStream(outfile);
        int temp = 0;
        byte data[] = new byte[1024];//每次讀取1024
        while((temp = input.read(data)) != -1)//有內容
        {
            output.write(data, 0, temp);//輸出一個內容
        }
        long end = System.currentTimeMillis();
        System.out.println("拷貝完成,所花費的時間:"+(end-start));
        input.close();
        output.close();
    }
}

相關推薦

JavaIO的使用方法字元

整理源於Java核心技術精講 Writer比OutputStream 方便的一點在於可以直接使用String型資料輸出 Writer 繼承者FileWriter Reader 繼承者FileReader 使用Writer類進行內容的輸出 impor

javamath類方法數學運算(pow,exp,三角函式,指數)

static double  sin(double a ) : 返回角的三角正弦static  double cos(double a)  : 返回角的三角餘弦static  double tan(double  a)  : 返回角的三角正切static  double asin(double a) : 返回

JavaIO讀取文字出現亂碼的解決方法

在編寫IO程式碼時,發現在讀取含有中文欄位的文字時,出現了亂碼,所以就查找了一下解決辦法,這裡借用一下其他博主的總結: 轉載地址:https://blog.csdn.net/qq_28950007/article/details/50760899 第一種方法:(不知道檔案的編碼),那通過

java筆記IO(二)字元

字元流是什麼     * 字元流是可以直接讀寫字元的IO流     * 字元流讀取字元, 就要先讀取到位元組資料, 然後轉為字元. 如果要寫出字元, 需要把字元轉為位元組再寫出. //標準使用方法 public stati

Java IO字元

1.字元輸出流 Writer(只能寫入文字檔案) 1.1FileWriter類(writer的子類) 構造方法: public class FileWriterDemo { public static void main(String[] args) throws IOE

Java學習筆記--------IO字元實現純文字拷貝

字元流 輸入流:Reader,FileReader 輸出流:Writer,FileWriter 字元流只能處理純文字,全部為可見字元(.txt或者.html)。下面實現純文字的拷貝: public class CopyFileDemo { public sta

黑馬程式設計師——Java IO(一)IO概述、字元、位元組

-----------android培訓、java培訓、java學習型技術部落格、期待與您交流!------------ IO流 一、概述 1.IO流是用來處理裝置之間的資料傳輸。  2.Java對資料的操作時通過流的方式。  3.Java用於操作流的物件都在IO包中。  

JavaIO-18-flush和close方法的區別

    本篇來學習一個小的知識點,flush方法和close方法的區別。前面我們介紹了和使用了close方法,知道是用來關閉流的操作,但是並沒有介紹flush方法,字面意思的重新整理的意思。下面我們來先看看一個例子,然後引出flush方法。 1.如果不關閉流執行程式碼 p

黑馬程式設計師——javaIO字元,位元組,轉換

------- android培訓、java培訓、期待與您交流! ---------- 前言:通過觀看畢向東老師的java基礎視訊,查漏補缺,將一些自己掌握的還不牢固的知識寫出來,希望和大家交流分享。 1.IO概述 1、相關概念:IO:即Input和Output的縮寫。

java IO 位元組字元操作總結三字元、序列化和反序列化

這一篇我講介紹一下字元流。什麼是字元流,就是若干個位元組組成一個字元。(為什麼說是若干個,不能確定嗎)這裡就來說說原因和編碼問題。 首先說說字元編碼的問題,比較常用的編碼有gbk,utf-8等。 a、.編碼問題(看前面所描述的)。 1、gbk 編碼中文佔用2個位元組,英文

JavaIO-29-IO練習題:統計一個檔案字元出現個數

這篇來利用IO流知識來做兩個練習題。第一個題目是在文字檔案中統計字元出現次數,並寫入到一個txt檔案裡。第二個練習題是模擬,試用軟體30天倒計時,這裡我們簡化一下,執行一次程式碼,試用天就減去1天。 1.文字檔案內統計字元出現個數 題目:給定一個文字檔案,統計字元出現個數

JAVA輸入輸出(IO字元

上一篇《JAVA輸入輸出(IO)之位元組流》介紹了JAVA位元組輸入輸出流的一些用法,位元組流一般是用於讀寫二進位制資料的,當我們要讀些字元資料的時候,如文字檔案,就顯得有些麻煩。所以JAVA還提供了專門用於讀寫字元資料的字元流。 字元輸入流 java.

JavaIO文件讀取、寫入和復制

復制 循環 int files catch class close brush system //構造文件File類 File f=new File(fileName); //判斷是否為目錄 f.isDirectory(); //獲取目錄下的文件名 String[] fil

JavaIO的分類及應用

serializa 對象序列化 col io流 pip ava 應用 指定 pipe =======I/O========================================================================== File:代表了磁

【轉載】JAVAIO操作的基本規律總結

reader 對象 作文 若是 gpo 是否 目的 io流 基本 流操作的基本規律:三個明確 1.明確源和目的; 源:輸入流即讀取流 InputStream,Reader 目的:輸出流即寫入流 OutputStream, Writer 2.明確操作的數據是

JavaIO,輸入輸出概述與總結

ips 刪除一個文件 數據 長度 還要 都是 模式 方式 歌曲 轉自:https://www.cnblogs.com/biehongli/p/6074713.html 1:Java語言定義了許多類專門負責各種方式的輸入或者輸出,這些類都被放在java.io包中。其中, 所有

javaIO常見的IO和file類理論總結

當前 unicode編碼 表示 相同 can HA 固定 tst clip 總結的很粗糙,以後時間富裕了好好修改一下。 1:Java語言定義了許多類專門負責各種方式的輸入或者輸出,這些類都被放在java.io包中。其中,所有輸入流類都是抽象類InputStream(字節輸入

JavaIO各種的先後關閉順序

Java中IO各種流的先後關閉順序 2017年06月06日 15:43:49 馬大頭 閱讀數:3858更多 個人分類: I/OJava 還是先看API   void close()   

javaIO的知識點總結

1.流的概念 流是一組有順序的,有起點和終點的位元組集合,是對資料傳輸的總稱或抽象。即資料在兩裝置間的傳輸稱為流,流的本質是資料傳輸,根據資料傳輸特性將流抽象為各種類,方便更直觀的進行資料操作。 2.IO流的分類 IO流分為字元流和位元組流. 3.位元組流和字元

22 Java學習字元(Reader和Writer)

  Java中的流是個抽象的概念,當程式需要從某個資料來源讀入資料的時候,就會開啟一個數據流,資料來源可以是檔案、記憶體或網路等等。相反地,需要寫出資料到某個資料來源目的地的時候,也會開啟一個數據流,這個資料來源目的地也可以是檔案、記憶體或網路等等 一. 字元流的引入 正如位元組流中所