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

java進(jìn)行文件讀寫(xiě)操作詳解

 更新時(shí)間:2014年10月29日 11:06:48   投稿:hebedich  
這篇文章主要介紹了java進(jìn)行文件讀寫(xiě)操作詳解的相關(guān)資料,需要的朋友可以參考下

直接上代碼,有詳細(xì)注釋,有圖解,相信你懂得!

復(fù)制代碼 代碼如下:

package day14;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.Random;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;

public class TestFileIO {
static String s = File.separator;

private static void testInput() {
// D盤(pán)下有個(gè)Welcome.java文件,現(xiàn)在按字節(jié)讀入:
int a = 0;
// int counter=0;
FileInputStream f11;
// 輸入流
try {
f11 = new FileInputStream("D:" + s + "Welcome.java");
while ((a = f11.read()) != -1)
System.out.print((char) a); // 這里是按字節(jié)輸出,中文字符無(wú)法正常輸出,因?yàn)橐粋€(gè)中文字符時(shí)兩個(gè)字節(jié)。
System.out
.println("\n\n--------------------------------------------------\n");

FileReader f12 = new FileReader("D:" + s + "Welcome.java");
while ((a = f12.read()) != -1)
System.out.print((char) a);// 這里是按字符輸出,中文字符都可以正常輸出
System.out
.println("\n\n--------------------------------------------------\n");

f11.close();// 讀完之后要關(guān)閉文件
f12.close();// 讀完之后要關(guān)閉文件
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

private static void testOutput() {
// D盤(pán)下有個(gè)Welcome.java文件,現(xiàn)在按字節(jié)讀入:
int a = 0;
// 輸出流
File f21 = new File("D:" + s + "testFile" + s + "test1.txt");// 定義一個(gè)新的文件f21,然后判斷在這一目錄下是否存在,如果不存在,則創(chuàng)建之。
if (!f21.exists()) {
f21.getParentFile().mkdirs();
try {
f21.createNewFile();
// 將“Welcome.java”的內(nèi)容復(fù)制到f21
FileOutputStream fos = new FileOutputStream(f21);
FileInputStream fis = new FileInputStream("D:" + s
+ "Welcome.java");// 讀入“Welcome.java”文件
while ((a = fis.read()) != -1)
fos.write(a);// 將讀入的內(nèi)存寫(xiě)到fos中,現(xiàn)在得到的test1。txt就是復(fù)制Welcome。java的

// writer類
FileWriter f22 = new FileWriter("D:" + s + "testFile" + s
+ "test2.txt");
for (int i = 0; i < 65535; i++)
f22.write(i);// 將
// 寫(xiě)入到test2.txt中。由這里也可以看出,上面35-38行判斷文件是否存在的語(yǔ)句也可以不要。
// 向文件中寫(xiě)入字符串
FileWriter f23 = new FileWriter("D:" + s + "testFile" + s
+ "test3.txt");
f23.write("Hello, world!");

fos.close();
fis.close();
f22.close();
f23.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

private static void testBufferring() {
// D盤(pán)下有個(gè)Welcome.java文件,現(xiàn)在按字節(jié)讀入:
int a = 0, counter = 0;
// 緩沖字符,實(shí)現(xiàn)高效寫(xiě)入
// BufferedWriter f31=new BufferedWriter(new
// FileWriter("D"+s+"testFile"+s+"test4.txt"));
BufferedWriter f31;
try {
f31 = new BufferedWriter(new FileWriter("D:" + s + "testFile" + s
+ "test4.txt"));
for (int i = 1; i <= 100; i++) {
f31.write(String.valueOf(new Random().nextInt(100)) + " ");
if (i % 10 == 0)
f31.newLine();
}
f31.flush();// 刷新緩沖
f31.close();

BufferedReader f32 = new BufferedReader(new FileReader("D:" + s
+ "testFile" + s + "test4.txt"));
String s32;
System.out.println("輸出文件f32的內(nèi)容:");
while ((s32 = f32.readLine()) != null)
System.out.println(s32);
f32.close();
System.out
.println("\n--------------------------------------------------\n");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

private static void testZip() {
try {
File f1 = new File("D:/test.zip");
File f2 = new File("D:/testFile/testzip");
ZipFile zf = new ZipFile(f1);
testZipToUnzip(zf, f2);

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

// 將壓縮包zipfile解壓到file中
public static void testZipToUnzip(ZipFile zipfile, File file) {
ZipEntry zentry = null;
File zipout;
InputStream zis = null;
FileOutputStream fos = null;
Enumeration e = zipfile.entries();// zipfile的目錄

while (e.hasMoreElements()) {
zentry = (ZipEntry) e.nextElement();
System.out.println(zentry.getName());// zipfile下有哪些文件?可是為什么不按順序輸出??

// 將解壓后的文件放到file文件夾下:
zipout = new File(file + s + zentry.getName());

if (!zentry.isDirectory()) {
try {
zis = zipfile.getInputStream(zentry);
if (!zipout.exists())
zipout.getParentFile().mkdirs();
fos = new FileOutputStream(zipout);
byte[] b = new byte[1024];
int length;
while ((length = zis.read(b)) > 0) {
fos.write(b, 0, length);
}
fos.close();
zis.close();
} catch (ZipException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}

public static void main(String[] args) throws ZipException {
// TODO Auto-generated method stub

testInput();
testOutput();
testBufferring();
testZip();
}
}



 



 

相關(guān)文章

  • Comet框架Plushlet使用問(wèn)題解決方案

    Comet框架Plushlet使用問(wèn)題解決方案

    這篇文章主要介紹了Comet框架Plushlet使用問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Mybatis動(dòng)態(tài)SQL的示例代碼

    Mybatis動(dòng)態(tài)SQL的示例代碼

    本文主要介紹了Mybatis動(dòng)態(tài)SQL的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • JAVA通過(guò)Filter實(shí)現(xiàn)允許服務(wù)跨域請(qǐng)求的方法

    JAVA通過(guò)Filter實(shí)現(xiàn)允許服務(wù)跨域請(qǐng)求的方法

    這里的域指的是這樣的一個(gè)概念:我們認(rèn)為若協(xié)議 + 域名 + 端口號(hào)均相同,那么就是同域即我們常說(shuō)的瀏覽器請(qǐng)求的同源策略。這篇文章主要介紹了JAVA通過(guò)Filter實(shí)現(xiàn)允許服務(wù)跨域請(qǐng)求,需要的朋友可以參考下
    2018-11-11
  • Java詳細(xì)分析LCN框架分布式事務(wù)

    Java詳細(xì)分析LCN框架分布式事務(wù)

    這篇文章主要介紹了Java LCN框架分布式事務(wù),分布式事務(wù)是指事務(wù)的參與者、支持事務(wù)的服務(wù)器、資源服務(wù)器以及事務(wù)管理器分別位于不同的分布式系統(tǒng)的不同節(jié)點(diǎn)之上
    2022-07-07
  • IDEA 單元測(cè)試覆蓋技巧分享

    IDEA 單元測(cè)試覆蓋技巧分享

    這篇文章主要介紹了IDEA 單元測(cè)試覆蓋技巧分享,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • Druid關(guān)閉監(jiān)控頁(yè)面關(guān)閉不了的問(wèn)題及解決

    Druid關(guān)閉監(jiān)控頁(yè)面關(guān)閉不了的問(wèn)題及解決

    這篇文章主要介紹了Druid關(guān)閉監(jiān)控頁(yè)面關(guān)閉不了的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java 鎖粗化與循環(huán)問(wèn)題

    Java 鎖粗化與循環(huán)問(wèn)題

    這篇文章主要介紹了Java 鎖粗化與循環(huán)的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04
  • IntelliJ Plugin 開(kāi)發(fā)之添加第三方j(luò)ar的示例代碼

    IntelliJ Plugin 開(kāi)發(fā)之添加第三方j(luò)ar的示例代碼

    這篇文章主要介紹了IntelliJ Plugin 開(kāi)發(fā)之添加第三方j(luò)ar的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java?熱更新?Groovy?實(shí)踐及踩坑指南(推薦)

    Java?熱更新?Groovy?實(shí)踐及踩坑指南(推薦)

    Apache的Groovy是Java平臺(tái)上設(shè)計(jì)的面向?qū)ο缶幊陶Z(yǔ)言,這門(mén)動(dòng)態(tài)語(yǔ)言擁有類似Python、Ruby和Smalltalk中的一些特性,可以作為Java平臺(tái)的腳本語(yǔ)言使用,這篇文章主要介紹了Java?熱更新?Groovy?實(shí)踐及踩坑指南,需要的朋友可以參考下
    2022-09-09
  • Maven工程打包jar的多種方式

    Maven工程打包jar的多種方式

    Maven打包一般可以生成兩種包一種是可以直接運(yùn)行的包,一種是依賴包(只是編譯包),這篇文章主要介紹了Maven工程打包jar的多種方式步驟詳解,需要的朋友可以參考下
    2023-04-04

最新評(píng)論

阳江市| 安龙县| 永德县| 和静县| 邮箱| 辽中县| 临泉县| 平阴县| 石门县| 江陵县| 南澳县| 辉县市| 鹤岗市| 鸡东县| 墨玉县| 贞丰县| 荣成市| 泌阳县| 临江市| 家居| 晋宁县| 余庆县| 湖南省| 建阳市| 兴城市| 吐鲁番市| 旬阳县| 仁布县| 渝中区| 福安市| 花莲市| 会理县| 卢湾区| 荥经县| 云和县| 稻城县| 吕梁市| 谷城县| 南郑县| 兴城市| 万盛区|