最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java編程之文件讀寫(xiě)實(shí)例詳解

 更新時(shí)間:2015年12月16日 10:34:22   作者:Sunnyfans  
這篇文章主要介紹了Java編程之文件讀寫(xiě)的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Java文件讀寫(xiě)所涉及的類及相應(yīng)的操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Java編程中文件讀寫(xiě)的方法。分享給大家供大家參考,具體如下:

Java中文件讀寫(xiě)操作的作用是什么?

回答這個(gè)問(wèn)題時(shí)應(yīng)該先想到的是Java只是一門(mén)語(yǔ)言,我們的一種使用工具而已,這樣答案就明晰了,就是將外來(lái)的各種數(shù)據(jù)寫(xiě)入到某一個(gè)文件中去,用以保存下來(lái);或者從文件中將其數(shù)據(jù)讀取出來(lái),供我們使用。就如下電影過(guò)程,從網(wǎng)絡(luò)資源中下載一部電影保存于你電腦中(寫(xiě)文件),當(dāng)你想看的時(shí)候就用播放器打開(kāi)(讀文件)。

Java中如何對(duì)文件進(jìn)行讀寫(xiě)操作?

先理一理,Java中的流分兩種,字節(jié)流和字符流,其中字節(jié)流的兩個(gè)基類是InputStream和OutputStream;字符流的兩個(gè)基類是Reader和Writer。所謂文件流,即我們對(duì)文件的操作留不開(kāi)流。由此可知我們要用到某個(gè)類必然繼承如上的四個(gè)基類之一。Java中一切都是類,一切都是對(duì)象。自然會(huì)想到文件操作有哪些類:

如下四個(gè)直接用到的類:

字節(jié)流中:FileInputStream和FileOutputStream
字符流中:FileReader和FileWriter

找到類就好辦事了。剩下來(lái)的就是去找實(shí)現(xiàn)方法啦。

兩種選擇方案在這里,這就牽涉到我們?nèi)绾芜x擇合適的文件讀寫(xiě)方式呢?

選擇條件的區(qū)別:

以字節(jié)為單位讀取文件,常用于讀二進(jìn)制文件,如圖片、聲音、影像等文件。
以字符為單位讀取文件,常用于讀文本,數(shù)字等類型的文件.
至于是否選擇用Buffer來(lái)對(duì)文件輸入輸出流進(jìn)行封裝,就要看文件的大小,若是大文件的讀寫(xiě),則選擇Buffer這個(gè)桶來(lái)提供文件讀寫(xiě)效率。

如下是簡(jiǎn)單運(yùn)用實(shí)例:

1、運(yùn)用字節(jié)流對(duì)文件進(jìn)行直接讀寫(xiě):

注:FileOutputStream(file, true);里面true參數(shù)表示不覆蓋原文件,直接在文件后面追加添加內(nèi)容。

public class FileTest
{
static File file = new File("d:/test.txt");
public static void main(String[] args)
{
try
{
FileOutputStream out = new FileOutputStream(file, true);
String s = "Hello,world!\r\n";
out.write(s.getBytes());
out.flush();
out.close();
//FileInputStream in = new FileInputStream(file);
//byte [] b = new byte[20];
//in.read(b, 0, b.length);
//System.out.println(new String(b));
//in.close();
} catch (FileNotFoundException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
}
}

2、運(yùn)用字符流對(duì)文件進(jìn)行直接讀寫(xiě):

public class File03
{
static File file = new File("d:/test.txt");
public static void main(String[] args)
{
try
{
FileWriter fw = new FileWriter(file,true);
fw.write("Hello,world!\r\n");
fw.flush();
fw.close();
//FileReader fr = new FileReader(file);
//int i=0;
//String s ="";
//while( ( i = fr.read() )!= -1)
//{
// s = s +(char)i;
//}
//System.out.println(s);
} catch (FileNotFoundException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
}
}

文件讀寫(xiě)流用Buffer封裝之后的運(yùn)用:

1、對(duì)字節(jié)流封裝后對(duì)文件進(jìn)行讀寫(xiě):

static File file = new File("d:/test.txt");
public static void main(String[] args)
{
try
{
// FileOutputStream out = new FileOutputStream(file, true);
// BufferedOutputStream bout = new BufferedOutputStream(out);
// String s = "I have a dream!";
// bout.write(s.getBytes());
// bout.flush();
// bout.close();
FileInputStream in = new FileInputStream(file);
BufferedInputStream bin = new BufferedInputStream(in);
byte[] b = new byte[15];
bin.read(b);
bin.close();
System.out.println(new String(b));
} catch (FileNotFoundException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
}
}

2、對(duì)字符流封裝后對(duì)文件進(jìn)行讀寫(xiě):

public class File03
{
static File file = new File("d:/test.txt");
public static void main(String[] args)
{
try
{
// FileWriter fw = new FileWriter(file, true);
// BufferedWriter bw = new BufferedWriter(fw);
// String nextLine = System.getProperty("line.separator");
// bw.write("Hello,world!" + nextLine);
// bw.flush();
// bw.close();
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
int i = 0;
String s = "";
String temp = null;
while((temp=br.readLine())!=null)
{
s = s+temp;
}
System.out.println(s);
} catch (FileNotFoundException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
}
}

希望本文所述對(duì)大家Java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Java 重載、重寫(xiě)、構(gòu)造函數(shù)的實(shí)例詳解

    Java 重載、重寫(xiě)、構(gòu)造函數(shù)的實(shí)例詳解

    這篇文章主要介紹了Java 重載、重寫(xiě)、構(gòu)造函數(shù)的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文大家能理解掌握java 面向?qū)ο蟮姆椒?,需要的朋友可以參考?/div> 2017-09-09
  • Java中LinkedList數(shù)據(jù)結(jié)構(gòu)的詳細(xì)介紹

    Java中LinkedList數(shù)據(jù)結(jié)構(gòu)的詳細(xì)介紹

    這篇文章主要介紹了Java中LinkedList,Linked List 是 java.util 包中 Collection 框架的一部分,文中提供了詳細(xì)的代碼說(shuō)明,需要的朋友可以參考下
    2023-05-05
  • Java NumberFormat格式化float類型的bug

    Java NumberFormat格式化float類型的bug

    今天小編就為大家分享一篇關(guān)于Java NumberFormat格式化float類型的bug,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • 關(guān)于Spring?@Transactional事務(wù)傳播機(jī)制詳解

    關(guān)于Spring?@Transactional事務(wù)傳播機(jī)制詳解

    我們?nèi)粘9ぷ髦袠O少使用事務(wù)傳播級(jí)別,單純只是使用事務(wù)和rollbackfor拋出異常來(lái)解決事務(wù)問(wèn)題,但其實(shí)我們很多時(shí)候使用的是不正確的,或者說(shuō)會(huì)造成事務(wù)粒度過(guò)大,本文詳解一下事務(wù)傳播級(jí)別,也讓自己更好地處理事務(wù)問(wèn)題,需要的朋友可以參考下
    2023-08-08
  • Spring AOP中定義切點(diǎn)的實(shí)現(xiàn)方法示例

    Spring AOP中定義切點(diǎn)的實(shí)現(xiàn)方法示例

    這篇文章主要介紹了Spring AOP中定義切點(diǎn)的實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了spring面向切面AOP定義切點(diǎn)的具體步驟、實(shí)現(xiàn)方法與相關(guān)操作技巧,需要的朋友可以參考下
    2020-01-01
  • 解析Tars-Java客戶端源碼

    解析Tars-Java客戶端源碼

    Tars是基于名字服務(wù)使用Tars協(xié)議的高性能RPC開(kāi)發(fā)框架,同時(shí)配套一體化的服務(wù)治理平臺(tái),幫助個(gè)人或者企業(yè)快速的以微服務(wù)的方式構(gòu)建自己穩(wěn)定可靠的分布式應(yīng)用
    2021-06-06
  • 淺談SpringBoot內(nèi)嵌Tomcat的實(shí)現(xiàn)原理解析

    淺談SpringBoot內(nèi)嵌Tomcat的實(shí)現(xiàn)原理解析

    這篇文章主要介紹了淺談SpringBoot內(nèi)嵌Tomcat的實(shí)現(xiàn)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Java 利用DeferredResult實(shí)現(xiàn)http輪詢實(shí)時(shí)返回?cái)?shù)據(jù)接口

    Java 利用DeferredResult實(shí)現(xiàn)http輪詢實(shí)時(shí)返回?cái)?shù)據(jù)接口

    這篇文章主要介紹了Java 利用 DeferredResult 實(shí)現(xiàn) http 輪詢實(shí)時(shí)返回?cái)?shù)據(jù)接口,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • SpringCache輕松啟用Redis緩存的全過(guò)程

    SpringCache輕松啟用Redis緩存的全過(guò)程

    Spring Cache是Spring提供的一種緩存抽象機(jī)制,旨在通過(guò)簡(jiǎn)化緩存操作來(lái)提高系統(tǒng)性能和響應(yīng)速度,本文將給大家詳細(xì)介紹SpringCache如何輕松啟用Redis緩存,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2024-07-07
  • ReentrantReadWriteLock?讀寫(xiě)鎖分析總結(jié)

    ReentrantReadWriteLock?讀寫(xiě)鎖分析總結(jié)

    這篇文章主要介紹了ReentrantReadWriteLock 讀寫(xiě)鎖分析總結(jié),ReentranReadWriteLock中有兩把鎖,一把讀鎖,一把寫(xiě)鎖,關(guān)于這兩把鎖的介紹,需要的小伙伴可以參考一下
    2022-05-05

最新評(píng)論

大悟县| 保康县| 海盐县| 太白县| 武宁县| 望谟县| 军事| 石嘴山市| 湘潭县| 顺昌县| 象山县| 吴忠市| 西充县| 万荣县| 北碚区| 鹤山市| 云霄县| 页游| 泸西县| 荆州市| 界首市| 聂拉木县| 资兴市| 商南县| 德安县| 台山市| 三门峡市| 乾安县| 齐河县| 库尔勒市| 岚皋县| 普洱| 徐水县| 馆陶县| 朝阳县| 社会| 邢台县| 固原市| 桂平市| 黔西县| 天柱县|