io流java
Ⅰ java中什麼是IO流
理解Java的IO流,首答先要把視角放在內存上,而不是放在文件上。
InputStream是用來寫入的沒錯,但不是寫入文件中,而是寫入內存中。所以InputStream的作用是從文件中讀取數據然後寫入內存中或者說寫入到正在運行的程序中。
而OutputStream同理,是從內存/程序中將數據推送出去,把數據保存到文件中。
以Java程序作為主視角,你就能懂了。Input讀取是為了讀給程序用,Output寫出是程序把數據輸出到硬碟上了。
Ⅱ Java:關於IO流中的read()方法
API說明:
public int read() throws IOException
從此輸入流中讀取一個數據位元組。如果沒有輸入可用,則此方法將阻塞。
指定者:類 InputStream 中的 read
返回:下一個數據位元組;如果已到達文件末尾,則返回 -1。
拋出:IOException - 如果發生 I/O 錯誤。
個人理解:
該方法將輸入按位元組讀入,當讀取到位元組時就返回該位元組的int型數值(可以將其強制轉換成byte類戚液型),如果讀取到文件末尾也就是無數據可讀時則返回-1,表示以讀到文件末尾。順便說一句按此方法讀取時需要將讀到的int轉成byte同時存入到一個足夠大的byte數組中,然後根據該數組構造謹唯字元串,顯示結果!
例:
public static void main(String[] args) throws IOException {
File f = new File("E:/java文件/demo1.txt");
InputStream ins = new FileInputStream(f);
byte[] bb = new byte[1024];
int temp = 0;
int i = 0;
while ((temp = ins.read()) != -1) {
bb[i++] = (byte) temp;
System.out.println((byte) temp);
}
System.out.println(new String(bb, "UTF-8").trim());
}
關於Byte的toString()方法:
返回表示此 Byte 的值的 String 對象。該值被轉換成有符號的十進製表示形式,並作為一個 string 返回,正如將 byte 值作為一個參數指定給 toString(byte) 方法所返回的一樣。
覆蓋:類 Object 中的 toString
返回:以基數高晌物 10 表示的此對象值的字元串表示形式。
Ⅲ java中的io流分為幾種
分兩大種,輸入流和輸出流
輸入流分為位元組輸入流,字元輸入流
輸出流分為位元組輸出流,字元輸出流
這四大類各自有各自的分支,各有各的功能,但總的來說主要是這四種。
字元流讀速寫速要比位元組流快,沒有亂碼現象,但是它只能讀寫文檔(txt);位元組流可以讀寫任意文件。
java.io下是java的IO流
以下是幾種常用流
FileInputStream文件位元組輸入流
FileOutputStream文件位元組輸出流
FileReader文件字元輸入流
FileWriter文件字元輸出流
Ⅳ Java IO流中先關閉輸出流還是先關閉輸入流為什麼
java中需要手動釋放的資源常見的有以下兩個:
流相關資源
流相關資源一般遵循:
1)先開後關,先開的輸入流,再開的輸出流,通過讀取輸入流寫入輸出流中,那麼應該先關輸出流,再關輸入流,但是一般關閉輸入輸出流操作都是在讀寫完成後的finally中執行的,所以即使先關輸入流,再關輸出流也不會任何問題,因為讀寫操作沒有進行了。
2)先關外層,再關內層。如BufferedInputStream包裝了一個FileInputStream,那麼先
關BufferedInputStream,再關FileInputStream。但要注意的是由於一般處理流持有節點流引用,處理流都會在自己的close方法中去關閉節點流,因此我們只要關閉外層的處理流即可,如果多此一舉的關閉節點流反而會報錯。如BufferedInputStream包裝了FileInputStream,我們只要關閉BufferedInputStream即可
3)只關處理流,不關節點流,原因見上述第二條
流相關文章參考:http://blog.csdn.net/u012250875/article/details/78341874
jdbc相關資源
Connection,PrepareStatement,ResultSet三個資源。這三個資源的獲取順序是:
先獲得一個jdbc連接對象Connection,再通過連接對象獲得一個sql預處理對象PrepareStatement,如果是查詢的話最後還會通過PrepareStatement對象獲取一個結果集ResultSet對象,關閉順序與獲取順序正好相反。先關ResultSet,再關PrepareStatement,最後關Connection。
Ⅳ java io流是將數據全部載入在內存的流對象里才開始讀的嗎
是的,但你說的不全。讀取有倆種方式,一種是直接讀取,一種是先放在緩沖流中,再一並讀取。內存只是個中轉站,在第一種方式中,數據是先載入在內存區,然後又被馬上被讀取出去。在第二種方式中,它會有個緩沖區,其實也就是個可以重用的內存區,它是先讀取完放在緩沖區,然後一並讀取出去!
Ⅵ java中的io流有哪些
Java中的IO流
指的是將不同的輸入輸出源通過流的形式進行輸入或輸出的操作,流是一種抽象的描述,在程序中指的是數據的一種埋模轉移方式。
IO流的分類:
(1)按照數據的流向:
輸入流、輸出流
(2)按照流數據的格式:
字元流、位元組流
(3)按照流數據的包裝過程:
節點流(低級流)、處理流(高級流)
最基本的幾種進行簡單介紹:
•InputStream/Reader: 所有的輸入流的基類,前者是位元組輸入流,後者是字元輸入流。
•OutputStream/Writer: 所有輸帶液攜出流的基類,前者是位元組輸出流蠢伏,後者是字元輸出流。
Ⅶ java中IO流操作怎樣關閉流
如果 in == null,就說明 in這個引用所指向的對象還沒有被創建,自然 in.close()也就不可能被執行,而且會報異常。我是這樣想的,程序中 如果你先聲明變數
InputStream(或者其他流類型) in = null;
然後執行其他語句,再 in = new 、、、、
在in new之前其他語句出exception,這時流沒有被打開,也就無需關閉,如果不判斷if(null != in) 硬要關閉in就出exception
另外你的代碼按如下寫會更合理:
if(null != in){
try{
in.flush();
in.close();
in = null;
}
catch(IOExection e){};
}
Ⅷ java中怎麼用io流讀寫文件
importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.FileReader;
importjava.io.FileWriter;
importjava.io.IOException;
publicclassTest14{
publicstaticvoidmain(String[]args)throwsIOException{
StringfPath="C:/test.txt";
//讀
BufferedReaderbr=newBufferedReader(newFileReader(fPath));
System.out.println(br.readLine());
br.close();////使用後記得關閉
//寫
BufferedWriterbw=newBufferedWriter(newFileWriter(fPath));
bw.write("寫一段話到文件里");
bw.flush();
bw.close();//使用後記得關閉
}
}
Ⅸ io流是不是沒用
有用。IO流殲畢屬於一種Java技術,主要用於處理數據傳輸。通過IO與外界進行數據交侍敏互,通信等。IO流適用於文件,圖片,音樂,氏談芹視頻等等的傳輸任務。