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以上)
思路:實現檔案複製肯定使用的是位元組流,因為檔案有可能是圖片,有兩種實現方式
- 將複製內容讀取到記憶體,而後將所有內容一次說輸出到目標檔案
採用邊讀邊寫的方式進行復制
方法二更為科學,尤其在檔案比較大的情況下
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();
}
}
相關推薦
Java中IO流的使用方法之字元流
整理源於Java核心技術精講 Writer比OutputStream 方便的一點在於可以直接使用String型資料輸出 Writer 繼承者FileWriter Reader 繼承者FileReader 使用Writer類進行內容的輸出 impor
java中math類方法之數學運算(pow,exp,三角函式,指數)
static double sin(double a ) : 返回角的三角正弦static double cos(double a) : 返回角的三角餘弦static double tan(double a) : 返回角的三角正切static double asin(double a) : 返回
Java中IO流讀取文字出現亂碼的解決方法
在編寫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包中。
Java中IO流-18-flush和close方法的區別
本篇來學習一個小的知識點,flush方法和close方法的區別。前面我們介紹了和使用了close方法,知道是用來關閉流的操作,但是並沒有介紹flush方法,字面意思的重新整理的意思。下面我們來先看看一個例子,然後引出flush方法。 1.如果不關閉流執行程式碼 p
黑馬程式設計師——java的IO之字元流,位元組流,轉換流
------- android培訓、java培訓、期待與您交流! ---------- 前言:通過觀看畢向東老師的java基礎視訊,查漏補缺,將一些自己掌握的還不牢固的知識寫出來,希望和大家交流分享。 1.IO概述 1、相關概念:IO:即Input和Output的縮寫。
java IO 位元組流、字元流操作總結三之字元流、序列化和反序列化
這一篇我講介紹一下字元流。什麼是字元流,就是若干個位元組組成一個字元。(為什麼說是若干個,不能確定嗎)這裡就來說說原因和編碼問題。 首先說說字元編碼的問題,比較常用的編碼有gbk,utf-8等。 a、.編碼問題(看前面所描述的)。 1、gbk 編碼中文佔用2個位元組,英文
Java中IO流-29-IO流練習題:統計一個檔案中字元出現個數
這篇來利用IO流知識來做兩個練習題。第一個題目是在文字檔案中統計字元出現次數,並寫入到一個txt檔案裡。第二個練習題是模擬,試用軟體30天倒計時,這裡我們簡化一下,執行一次程式碼,試用天就減去1天。 1.文字檔案內統計字元出現個數 題目:給定一個文字檔案,統計字元出現個數
JAVA輸入輸出(IO)之字元流
上一篇《JAVA輸入輸出(IO)之位元組流》介紹了JAVA位元組輸入輸出流的一些用法,位元組流一般是用於讀寫二進位制資料的,當我們要讀些字元資料的時候,如文字檔案,就顯得有些麻煩。所以JAVA還提供了專門用於讀寫字元資料的字元流。 字元輸入流 java.
Java中IO流文件讀取、寫入和復制
復制 循環 int files catch class close brush system //構造文件File類 File f=new File(fileName); //判斷是否為目錄 f.isDirectory(); //獲取目錄下的文件名 String[] fil
Java中IO流的分類及應用
serializa 對象序列化 col io流 pip ava 應用 指定 pipe =======I/O========================================================================== File:代表了磁
【轉載】JAVA中IO流操作的基本規律總結
reader 對象 作文 若是 gpo 是否 目的 io流 基本 流操作的基本規律:三個明確 1.明確源和目的; 源:輸入流即讀取流 InputStream,Reader 目的:輸出流即寫入流 OutputStream, Writer 2.明確操作的數據是
Java中IO流,輸入輸出流概述與總結
ips 刪除一個文件 數據 長度 還要 都是 模式 方式 歌曲 轉自:https://www.cnblogs.com/biehongli/p/6074713.html 1:Java語言定義了許多類專門負責各種方式的輸入或者輸出,這些類都被放在java.io包中。其中, 所有
java中IO常見的IO流和file類理論總結
當前 unicode編碼 表示 相同 can HA 固定 tst clip 總結的很粗糙,以後時間富裕了好好修改一下。 1:Java語言定義了許多類專門負責各種方式的輸入或者輸出,這些類都被放在java.io包中。其中,所有輸入流類都是抽象類InputStream(字節輸入
Java中IO各種流的先後關閉順序
Java中IO各種流的先後關閉順序 2017年06月06日 15:43:49 馬大頭 閱讀數:3858更多 個人分類: I/OJava 還是先看API void close()
java中IO流的知識點總結
1.流的概念 流是一組有順序的,有起點和終點的位元組集合,是對資料傳輸的總稱或抽象。即資料在兩裝置間的傳輸稱為流,流的本質是資料傳輸,根據資料傳輸特性將流抽象為各種類,方便更直觀的進行資料操作。 2.IO流的分類 IO流分為字元流和位元組流. 3.位元組流和字元
22 Java學習之字元流(Reader和Writer)
Java中的流是個抽象的概念,當程式需要從某個資料來源讀入資料的時候,就會開啟一個數據流,資料來源可以是檔案、記憶體或網路等等。相反地,需要寫出資料到某個資料來源目的地的時候,也會開啟一個數據流,這個資料來源目的地也可以是檔案、記憶體或網路等等 一. 字元流的引入 正如位元組流中所