java簡單編程之文件與數據流,文件流 java

本文目錄一覽:

java簡單編程之文件與數據流

就是mvc,m就是modal模型也就是實體bean,v就是view顯示層也就是jsp頁面,c就是ctrl控制層,拼寫可能有出入,一般為servlet,或者struts里的action

在java 中文件流和數據流的區別

文件流是通過方法可以知道長度,名稱等詳細信息的數據流。主要用於文件操作,在文件流中有自己的適用於文件操作的數據格式。而數據流是一個統稱,所有的流都可以稱為數據流。文件流屬於數據流的一種。

簡述java中流的概念和劃分

流的概念:流分為位元組流、字元流(數據類型);輸入流、輸出流(數據方向);節點流、處理流(數據功能)。

三種分類是根據不同的概念來劃分的;流有四個抽象類:InputStream 、OutputStream、Reader、Writer;其中前兩個是位元組流處理時候是通過輸入或輸出位元組形式的;後面兩個是通過字元來處理的讀取或寫入每個字元;在java中輸入輸出寫入讀取是從程序的方向上去辨別的,這一點不要搞混了。

什麼是節點流?

簡單的例子:比如說從某個文件中讀取數據把這個文件當做一個大桶,現在用個管道直接連接在這個大桶上進行抽水此時這跟管道就是節點流;當感覺這個管道不夠抽水用的了,在其外面套上一個大的抽水管道,此時這個大的管道就相當於處理流;

java流與文件處理,請看代碼:

我暫且不知道什麼問題

你先這樣不要寫入那個文件

你在cmd中顯示出來你讀的文件,看看能不能讀到cmd中

用java編寫程序,使用文件輸出流,向文件分別寫入如下類型的數據:int、double和字元串

import java.io.*;

class Test

{

public static void main(String args[])throws IOException

{

writeData();

}

public static void writeData()throws IOException

{

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

DataOutputStream dos=new DataOutputStream(new FileOutputStream(“data.txt”));

BufferedWriter bw = new BufferedWriter(new FileWriter(“data.txt”));

String line = null;

while((line = br.readLine())!=null)

{

if(line.equals(“exit”)) //錄入的字元串是”exit”,則退出

break;

try

{

dos.writeInt(Integer.parseInt(line)); //如果錄入的是int型,則向文件「data.txt」中寫入int型的數據

}

catch (NumberFormatException e1)

{

try

{

dos.writeDouble(Double.parseDouble(line)); //錄入的是double型,「data.txt」中寫入double型的數據

}

catch (NumberFormatException e2)

{

bw.write(line); //不是int,double,即使String類型,就將String類型寫入

}

}

}

br.close();

dos.close();

bw.close();

}

}

Java中的I/O流的基本知識

1、與外部設備和其它計算機進行交流的輸入輸出操作,尤其是對磁碟的文件操作,是計算機程序重要的功能,任何計算機語言都必須對輸入輸出提供支持。Java也不例外,它的輸入輸出類庫中包含了豐富的系統工具,這些類被放在java.io包中。在該類庫中,除了定義文件輸入輸出操作外,還定義了許多用來和其他外設進行信息交換的類。

2、流(Stream)指的是在計算機的輸入與輸出之間運動的數據序列:輸入流代表從外設流入計算機的數據序列;輸出流代表從計算機流向外設的數據序列。

流式輸入輸出是一種很常見的輸入輸出方式,它最大的特點是數據的獲取和發送均沿數據序列順序進行:每一個數據都必須等待排在它前面的數據讀入或輸出之後才能被讀寫,每次讀寫操作處理的都是序列中剩餘的未讀寫數據中的第一個,而不能夠隨意選擇輸入輸出的位置。磁帶機是實現流式輸入輸出的典型設備

3、InputStream和OutputStream是java.io包中的兩個抽象類,他們分別是其他所有輸入、輸出流類的父類。其他所有輸入流類都是繼承了InputStream的基本輸入功能並根據自身屬性對這些功能加以擴充;同樣,其他所有輸出流類也都是繼承了OutputStream類的基本輸出功能並加以擴展的

4、File類是IO包中惟一代表磁碟文件本身的對象,File對象定義了一些與平台無關的方法來操縱文件

創建File類對象時需指明它所對應的文件或目錄名。File類共提供了4個不同的構造方法,以不同的參數形式靈活地接收文件和目錄名信息

5、FileReader和FileWrite類分別繼承自Reader類和Writer類,繼承關係如圖6-2所示。FileReader類用於讀取文件;FileWrite類用於將數據寫入文件。在使用這兩個類之前,必須調用其構造方法創建相應的對象,然後才能調用相應的read()或write()方法進行文件的讀寫操作

6、BufferedReader和BufferedWrite類分別繼承自Reader類和Writer類,BufferedReader類用來從字元輸入流中讀取文本,緩衝各個字元,從而實現字元、數組和行的高效讀取。BufferedWrite類用於將文本寫入字元輸出流,緩衝各個字元,從而提供單個字元、數組和字元串的高效寫入。

7、LineNumberReader類是BufferedReader類的直接子類。該類允許對文本輸入數據流加入行號。

此類定義了方法setLineNumber(int)和getLineNumber(),它們可分別用於設置和獲取當前行號。默認情況下,行編號從0開始。該行號隨數據讀取在每個行結束符處遞增,並且可以通過調用setLineNumber(int)更改行號。但要注意的是,setLineNumber(int)不會實際更改流中的當前位置;它只更改將由getLineNumber()返回的值

8、LineNumberReader類是BufferedReader類的直接子類。該類允許對文本輸入數據流加入行號。

此類定義了方法setLineNumber(int)和getLineNumber(),它們可分別用於設置和獲取當前行號。默認情況下,行編號從0開始。該行號隨數據讀取在每個行結束符處遞增,並且可以通過調用setLineNumber(int)更改行號。但要注意的是,setLineNumber(int)不會實際更改流中的當前位置;它只更改將由getLineNumber()返回的值使用RandomAccessFile類隨機讀寫文件時,在創建了一個RandomAccessFile對象之後,該文件即對文件描述句柄處於打開狀態。此時,文件的指針處於文件開始位置。可以通過seek(long pos)方法設置文件指針的當前位置,以進行文件的快速定位,然後使用相應的read()和write()方法對文件進行讀寫操作。在對文件的讀寫操作完成後,調用close()方法關閉文件

9、FileInputStream和FileOutputStream類主要用來處理以「位為主」的輸入輸出操作。其中,FileInputStream類繼承於InputStream類;FileOutputStream類繼承於OutputStream類。

與RandomAccessFile類所不同的是,FileInputStream和FileOutputStream類中提供的文件處理方式是文件中數據流的順序讀寫,而不是利用文件指針進行定位的隨機讀寫

10、Java中的PipedInputStream和PipedOutputStream類提供了利用管道方式進行數據輸入輸出管理。管道流用來將一個程序或者線程的輸出連接到另外一個程序或線程作為輸入,使得相連線程能夠通過PipedInputStream和PipedOutputStream類進行數據交換。

PipedInputStream和PipedOutputStream類也是InputStream和OutputStream類的直接子類。這兩個類必須結合使用,其中,管道輸入流作為管道的接收端、管道輸出流作為管道的發送端,在程序設計中應注意數據的傳輸方向

順序輸入流SequenceInputStream是InputStream的直接子類,其功能是將多個輸入流連接在一起,形成單一的輸入數據流,沒有對應的輸出數據流存在。

順序輸入流SequenceInputStream由多個輸入流構造而成,它從輸入流的有序集合開始,並從第一個輸入流開始讀取,直到文件末尾,接著從第二個輸入流讀取,依次類推,直到到達順序輸入流包含的最後一個輸入流的文件末尾為止

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/231566.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-11 01:04
下一篇 2024-12-11 01:04

相關推薦

發表回復

登錄後才能評論