導航:首頁 > 編程語言 > java文件輸入流

java文件輸入流

發布時間:2022-06-23 05:15:23

❶ 關於java文件輸入輸入流的問題

throws Exception拋出異常,try/catch是捕獲異常,兩者不是可以代替的關系,雖然看起來像fis.read(),fis流里沒東西的時候就=-1System.out.print與System.out.println有什麼不同?第一個列印不換行,第二個列印換行if(args.length<1){
System.out.println("Usage:java panchuangs [fileName]");
System.exit(1);
}已經跳出來了

❷ java如何使用文件位元組輸入流類 : FileInputStream類

文件位元組輸入流可以從指定路徑的文件中讀取位元組數據。文件位元組輸入流類繼承InputStream類,並實現了讀取輸入流的各種方法。

創建文件位元組輸入流創建的構造方法語法如下:

❸ java位元組輸入流什麼意思輸入的是位元組,輸出的是字元

就是從數據源讀入一些數據,這些數據是以位元組為基本單位的。
至於把這些數據解析成什麼,就得看情況而言了。
例如,從文本文件輸入流,可以以gbk或其他編碼方式解碼成字元。從非文本文件輸入流,可以按其他某種自定義的規則方式解析成具體的內容。

❹ JAVA的輸入輸出流有多少種

在「面向對象編程:Java collection更有效管理elements」一文中,我們討論了Java 集合類架構中的類和功能並介紹了它的排序功能。在本文中,我們將學習Java 平台提供的這些I/O類,介面和操作。讓我們先從了解Java 數據流開始。 數據流Java所有的I/O機制都是基於數據流的,這些數據流表示了字元或者位元組數據的流動序列。Java的I/O流提供了讀寫數據的標准方法。任何Java中表示數據源的對象都會提供以數據流的方式讀寫它的數據的方法。 Java.io是大多數面向數據流的輸入/輸出類的主要軟體包。這個軟體包包含了兩個抽象類,InputStream和OutputStream。所有其它面象數據流的輸入/輸出類都要擴展這兩個基類。 java.io軟體包提供了一些類和介面,它們在由InputStream和OuputStream類提供的讀寫操作的頂端定義了一些有用的抽象。例如,ObjectInputStream類提供了讓你把輸入/輸出流中的數據當成對象來讀取的方法,而ObjectOutputStream類提供了讓你能夠把Java對象寫入數據流中的方法。 優化讀寫過程 JDK 1.1 增加了一套讀寫類,它們提供了比現有數據流類更有用的抽象和更好的輸入/輸出性能。例如,BufferedReader和BufferedWriter 類被用來從基於字元的輸入和輸出流中讀取和寫入文本。BufferdReader 類緩存字元以更高效的讀取字元串,數組和文本行。BufferedWriter類緩存字元以更高效的寫入字元串,數組和文本行。BufferedReader和BufferedWriter 類可以按需求進行設置。 Java輸入/輸出架構提供的讀取器和寫入器類包括 LineNumberReader 類,CharArrayReader類,FileReader類,FilterReader類,PushbackReader類,PipedReader類,StringReader類以及其它一些類。這些類是在InputStream和OuputStream類頂部的包裹類因此提供了與InputStream和OuputStream類相似的方法。但是,這些類為讀寫特定的對象,比方文件,字元數組和字元串等等提供了更高效而有用的抽象。 讀取數據當你從一個相應的數據源對象里提取輸入流或者是創建一個讀取器對象的時候就會自動打開一個輸入流。例如,要為一個文件打開輸入流,我們只需要以下面的方式把文件名傳遞給Java.io.FileReader對象的構造函數: java.io.FileReader fileReader = new java.io.FileReader(/home/me/myfile.txt); 要按順序讀取FileReader底層的輸入流中的一個位元組數據,只需要使用不帶參數的read方法。表A中的代碼段從一個文件讀取文本數據,一次一個字元,然後把它寫入System.out里。 要從輸入流讀取指定數目的位元組數據到char數組里,只需要使用帶一個char[]參數的read方法。數組的長度被用來確定應該讀取的字元的個數。表B演示了這個技術。 要關閉一個輸入流以及這個流使用的所有系統資源,你只需要以下面的方式調用close方法: fileReader.close();寫入數據象一個輸入流一樣,輸出流通常在你從相應的數據源提取它或者是在你創建一個寫入對象的時候被自動的打開。例如,要為一個文件打開輸出流,我們把文件的名字傳遞給java.io.FileWriter對象的構造函數,如下所示: java.io.FileWriter fileWriter = new java.io.FileWriter(/home/me/out.txt); 要將一個特定的字元寫入到輸出流中,可以使用帶一個int參數的write方法,int參數代表要定入的字元。 int aChar = (int)'X'; fileWriter.write(aChar); 要在輸出流給定的偏移地址寫入一個char數組中特定數目的字元,你可以使用帶一個char[]參數,一個int 偏移量參數和一個int長度參數的write方法,如下面的例子所示: fileWriter.write(buffer, 0, byteCount); 要關閉一個輸出流並釋放所有與之相關的系統資源,可以使用close方法,就象這樣: fileWriter.close(); 要強迫寫出一個輸出流中的所有數據,可以使用下面的flush方法: fileWriter.flush(); 把它們全部綜合起來 我們可以使用我們學習過的這些函數從一個文件中讀取數據並同時寫到另一個文件中去,如表C所示。 總結Java的輸入/輸出機制為從不同的數據源讀取和寫入字元增加了一套簡單而標准化的API。你對一種數據源使用Java流的經驗能夠讓你容易的使用其它由Java提供的數據源類型。

❺ Java里那個輸入流和輸出流怎麼用

//java中使用文件輸入流和文件輸出流進行文件讀寫的用例!
Java
packagecom.test.io;

importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.OutputStream;

/**
*
*@author亞當愛上java
*用例內容:文件輸入流和文件輸入流結合用例,位元組流方式
*時間:2010-06-20
*注意事項:文件輸入流和文件輸出流都是相對與內存來說的,例如通過程序讀取文件時往內存輸入數據就是文件輸入流
*/

publicclassFileInputOrOutput{

publicstaticvoidmain(String[]args){

//文件或者路徑名的抽象表現形式,意思就是說之後如果進行操作的話就是全部在這個抽象路徑名所指向的文件或者文件加中
Filefile=newFile("e:/test.txt");
Filefile2=newFile("e:/test1.txt");

//文件位元組數的個數
//System.out.println(file.length());
try{

/*------------------------------------------讀操作部分-----------------------------------------------*/
//文件輸入流對象
InputStreamfis=newFileInputStream(file);

//文件輸入流對象所讀取的位元組數大小
//System.out.println(fis.available());

/**
*1.按照一個位元組為單位進行讀取數據,弊端是遇到中文就會把中文的漢字拆開從而出現亂碼
*/

////流對象讀出的返回值是每次所讀到的一個字元所對應的ascii碼值
//inti=fis.read();
//
////如果已經讀到文件尾則i==-1,此時終止循環
//while(i!=-1){
//System.out.print((char)i);
//保證每一次循環都繼續往後讀取一個字元,否則i的值不變會成為死循環
//i=fis.read();
//}
/**
*2.按照一個位元組數組所指定的大小為單位進行讀取,每次最多可以讀取數組定義的大小的位元組個數
*/

//每次讀取都以1K位元組作為單位來進行
byteb[]=newbyte[1024];

//流對象讀出並返回的是每次讀取位元組的個數,最大每次讀取自己數可以和數組b.length相同
//b中存儲了每次所讀取的所有數據
inti=fis.read(b);

Stringstr="";
//如果已經讀到文件尾則i==-1,此時終止循環
while(i!=-1){
//把每次讀取的位元組數組解碼為字元串
//參數1:要解碼為字元的位元組
//參數2:要解碼的首字元的索引
//參數3:要解碼的位元組的個數,如果文件個數大於所設定的一次讀取文件的大小時i的取值就是
//b.length,否則小於數組的位元組大小時則為實際的讀取出自己數的大小
str=str+newString(b,0,i);

//保證每一次都往文件的下一部分進行讀取,否則i值沒有變化會成為死循環
i=fis.read(b);
}

//System.out.print(str);

//關閉輸入流對象
fis.close();

/*------------------------------------------寫操作部分-----------------------------------------------*/
//文件輸出流對象
OutputStreamfos=newFileOutputStream(file2);

//str是從file所指定的文件中讀出的所有內容,將此內容寫入另一個文件中
//將字元解碼為位元組數組
byteb2[]=str.getBytes();

//將解碼後的位元組數組,通過文件輸出流對象寫入到緩沖區中
fos.write(b);
//強制將緩沖區中的內容輸出到文件中
fos.flush();
//關閉輸出流對象
fos.close();

}catch(FileNotFoundExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}

}
}

❻ JAVA的輸入輸出流是什麼有幾種

以下是個人理解。流可以分為位元組流和字元流區別嘛,你去搞清楚位元組和字元的區別就知道了。流,其實沒必要認為太高深,位元組流的輸入流,就是InputStream,他有個read()方法,而且有很多重載read(byte[]b)什麼的,就是把文件轉換成位元組,後一個方法就是把轉換的位元組放到一個byte數組中。例如你定義一個File file=new File("d:/test.txt");byte[]b=new byte[1024];FileInputStream fis=new FileInputStream(file);fis.read(b);fis.close();//b里現在就放的是從文件d:/test.txt讀取的位元組(當然這不太嚴謹,可能會有錯誤)//現在是輸出流FileOutputStream fos=new FileOutputStream(new File("d:/target.txt"));//write方法這個是byte數組中的位元組放到目的文件d:/target.txt中fos.write(b);fos.close();這個是很簡單的寫法,沒考慮文件大小,出現數組越界千萬別怪我,手敲代碼很煩呢,可能有錯誤,自己慢慢體會,這個急不來

❼ java如何使用文件字元輸入流FileReader

文件字元輸入流與文件位元組輸入流的功能相似,但是傳送數據的方式不一樣,位元組流以位元組為單位傳送數據,可以使文本、視頻、音頻、圖片等。字元流以字元為單位傳送數據,只能傳送文本類型的數據。

創建字元輸入流常用的構造方法:

❽ java怎麼區分輸入流和輸出流

這個是依照內存為標準的,以載入磁碟上的文件到內存為例, 首先你必須把 磁碟上的文件,載入到 內存中,這個就是輸入到內存, 你把內存里的文件,寫到磁碟上,這個是把內存輸出到磁碟上, 以內存為標准,寫進內存,就是輸入, 內存本身有內容,輸出到別的地方,就是輸出,一些網路的輸入輸出流,跟這個是一樣的概念,以 客戶端發送HTTP請求為例,客戶端准備好了HTTP請求的內容,發送給伺服器,這個就是輸出流, 伺服器返回一些內容,寫進你本地的內存,這個就是輸入,但是對於伺服器來說,這個又是不一樣的,你的請求對伺服器來說,是輸入,伺服器給你的內容就是輸出了。一端的輸入,對於另一端來說就是輸出,一端的輸出,對另一端就是輸入。

❾ Java 如何使用輸入流和輸出流 將txt文件中的某一行數據刪除

按行讀取文本,寫入一個StringBuilder或StringBuffer對象中,循環寫入時判斷刪除行時不寫入,最後將拼接的字元串寫入原文件即可,這裡面需要注意存儲字元串長度。

❿ java中如何做文件位元組輸入流

首先,我以往經驗是寫入位元組流和輸出位元組流的方式一定要一致,不然寫入的位元組流就會出錯甚至讀取不到,下面是位元組流的寫入和讀取方法:

importjava.io.*;
classTest{
publicstaticvoidmain(Stringargs[]){
FileInputStreamfis=null;
FileOutputStreamfos=null;
byte[]buffer=newbyte[100];
inttemp=0;
try{
fis=newFileInputStream("D:/wenhao/src/from.txt");
fos=newFileOutputStream("D:/wenhao/src/to.txt");
while(true){
temp=fis.read(buffer,0,buffer.length);
if(temp==-1){
break;
}
fos.write(buffer,0,temp);
}
}
catch(Exceptione){
System.out.println(e);
}
finally{
try{
fis.close();
fos.close();
}
catch(Exceptione2){
System.out.println(e2);
}
}
}
}
閱讀全文

與java文件輸入流相關的資料

熱點內容
代碼加密常用方法 瀏覽:952
安卓手機如何解除已禁用 瀏覽:396
演算法的隨機性 瀏覽:485
高中解壓體育游戲 瀏覽:532
androidstudior丟失 瀏覽:345
命令行筆記 瀏覽:737
360目標文件夾訪問拒絕 瀏覽:518
3b編程加工指令 瀏覽:789
c8051f系列單片機選型手冊 瀏覽:772
南昌php程序員 瀏覽:511
bcs命令 瀏覽:446
如何在伺服器指向域名 瀏覽:417
車床編程可以做刀嗎 瀏覽:519
ln命令源碼 瀏覽:791
用粘液做解壓手套 瀏覽:331
icloud收信伺服器地址 瀏覽:500
編程思考者 瀏覽:453
壓縮機型號用什麼氟利昂 瀏覽:553
農機空氣壓縮機 瀏覽:666
程序員下載歌曲 瀏覽:897