亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Java的文件與磁盤操作

2019-11-18 14:25:03
字體:
來源:轉載
供稿:網友

  1 如何獲得某一個目錄下的文件列表?



File MyDir = new File("C:/Windows/.");

String[] FileNames = MyDir.list();



2 如何實現一個打開文件或者是存儲文件對話框?



AWT: FileDialog類 + FilenameFilter類

Swing: JFileChooser類 + FileFilter類



其中,基于Swing的解決方案功能更加強大,界面也更加美觀。



3 利用FileReader/FileOutputStream拷貝中文文件出錯?



利用如下代碼片斷拷貝中文文件不會出錯:



int c;

while ((c = MyFileReader.read()) != -1)

MyFileWriter.write(c);



利用如下代碼片斷拷貝中文文件會導致文件內容錯誤:



int c;

while ((c = MyFileReader.read()) != -1)

MyFileOutputStream.write(c);



造成這個問題的原因是:FileReader.read()返回一個int,其取值范圍是

0 到65535,通常來說是兩個字節的;FileWriter.write(int c)向文件寫

入一個int,通常來說也是兩個字節的,假如某個字符的高位字節為空,那

么其高位字節將被舍棄;FileOutputStream.write(int b)雖然接受一個

int作為參數,實際上只向文件寫入一個字節,假如傳遞過來的參數是一個

雙字節的漢字,其高位字節將被舍棄,造成文件內容錯誤。



建議:永遠只使用InputStream/OutputStream進行IO操作。



利用如下代碼片斷拷貝中文文件不會出錯:



int c;

while ((c = MyFileInputStream.read()) != -1)

MyFileOutputStream.write(c);



4 如何顯示和存儲拉丁語言中的非凡字符



使用統一碼Unicode可以顯示和存儲拉丁語言中的非凡字符。具體應用范例

如下:



MyJTextArea.append("u00E1");

MyJTextArea.append("u00E2");

MyJTextArea.append("u00E3");

MyJTextArea.append("u00E4");

MyJTextArea.append("u00E5");



MyFileOutputStream.write(MyJTextArea.getText().getBytes("UTF-8"));

MyFileOutputStream.close();



同樣,在讀取文件的時候也需要將讀到的內容轉換成統一碼。



byte[] b = new byte[MyFile.length()];

FileInputStream in = new FileInputStream(MyFile);

in.read(b);

MyJTextArea.append(new String(b, "UTF-8"));



5 如何利用文件進行數據存取



對于一般的科學計算應用程序,DataInputStream和DataOutputStream類通

常是最好的選擇。這兩個類提供了存取各種數據的方法。下面的范例演示了

構造DataInputStream和DataOutputStream的方法:



MyDataInputStream = new DataInputStream(

new FileInputStream(MyInputFile));

MyDataOutputStream = new DataOutputStream(

new FileOutputStream(MyOutputFile));



利用ObjectInputStream和ObjectOutputStream同樣可以進行數據存取,需

要注重的是這樣做增加了硬盤的開銷,因為進行對象序列化過程添加了一

些額外的信息。在利用ObjectInputStream和ObjectOutputStream進行通訊

的時候,雖然數據發收過程得到了大大簡化,但是對帶寬的要求也大大的

提高了。



6 文件操作的基本原則是什么?



a. 避免多次訪問磁盤,例如一次讀出n個字節就比每次讀出1個字節的訪問

效率要高很多。

b. 避免多次訪問操作系統。

c. 避免多次調用文件存取方法。

d. 避免將字節和字符混淆處理,在java語言中字節與字符的概念是不一樣

的,在涉及到雙字節字符的問題上更是輕易出錯。



7 如何獲得可用的硬盤空間?



目前尚未發現有任何干凈利落的純Java方法能夠解決這個問題。通常的解

決方案是直接訪問操作系統獲得這些信息。有一個被稱為JConfig的類庫提

供了一些方法可以獲得磁盤和文件信息,但是可以肯定這個類庫使用了JNI

方法。



下載地址:http://www.tolstoy.com/samizdat/jconfig.Html



假如你使用的是暈倒死系列操作系統,那么下面的方法也許能夠獲得正確

的結果。我之所以說也許,是因為我在多個暈倒死平臺上作過實際測試,

在英文版的暈倒死上基本上都能夠得到正確的結果,在中文版的暈倒死上

基本上都不能夠獲得正確的結果。



String osname = System.get
String command = "";

if (osname.indexOf("NT") > -1)

command = "c:/winnt/System32/cmd.exe";

else if (osname.indexOf("Windows") > -1)

command = "c:/windows/command.com";



Process p = Runtime.getRuntime().exec(

command + " /c dir > c:/dir.txt");

p.waitFor();



然后你需要做的是對得到的dir.txt文件進行分析。



假如你使用的是UNIX/
linux操作系統,你可以使用類似的方法來獲得相關

信息。建議使用的命令是df -k > dir.txt。



8 我能夠用Java來格式化我的硬盤或者是軟盤么?



關于這個問題,想來在不久的將來仍然是不會有純Java的解決方案了。如

果你一定要在你的Java應用程序里面格式化你的C盤的話,下面的這個方法

也許會有所幫助。當然,在你使用這個方法之前,請仔細備份好女朋友給你

的情書或者是記下和下一個網友約會的日期。



建立一個稱為FormatDrive.bat的文件,該文件必須放在當前目錄或者是系

統路徑下,文件的內容如下:



rundll32.exe shell32.dll, SHFormatDrive



格式化硬盤的方法可以這樣寫:



public void FormatDrive()

{

try

{

Process p = Runtime.getRuntime().exec("FormatDrive.bat");

p.waitfor();

} catch (Exception e)

{

System.out.println(e);

}

}



9 怎么知道我究竟有幾個可用的存儲設備?



在UNIX/Linux下你通常沒有必要關心這個問題,只要記住那個斜杠就可以了。

在暈倒死下硬盤可以有多個邏輯分區,可應用下面的方法找出來:



public void ListDisks()

{

File[] roots = File.listRoots();

for (int i=0; i
{

System.out.println(roots[i]);

}

}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲理论电影网| 成人欧美一区二区三区在线湿哒哒| 国产精品无码专区在线观看| 国产视频欧美视频| 亚洲一区二区中文字幕| 欧美日韩国产123| 成人h视频在线观看播放| 日韩av在线影视| 色播久久人人爽人人爽人人片视av| 亚洲人成电影网站色| 亚洲激情视频网| 亚洲天堂2020| 亚洲高清不卡av| 日韩精品日韩在线观看| 亚洲欧美日韩一区二区三区在线| 日本高清视频一区| 97国产在线视频| 日韩视频―中文字幕| 欧美在线影院在线视频| 亚洲福利视频在线| 国内精品在线一区| 日韩av第一页| 国产成人欧美在线观看| 另类视频在线观看| 国内精品久久久久久久久| 最近2019年好看中文字幕视频| 国产精品男人爽免费视频1| 亚洲一区999| 在线精品播放av| 国产视频精品xxxx| 亚洲va欧美va国产综合剧情| 5252色成人免费视频| 热久久免费视频精品| 色老头一区二区三区在线观看| 国产小视频91| 国产精品精品视频| 51午夜精品视频| 亚洲欧美精品伊人久久| 97婷婷大伊香蕉精品视频| 亚洲精品中文字幕av| 久久久久久国产精品三级玉女聊斋| 久久精品国产一区二区电影| 国内精品久久久| 精品日本高清在线播放| 日本精品在线视频| 亚洲女人初尝黑人巨大| 亚洲欧美国产一本综合首页| 久久夜色撩人精品| 在线观看精品自拍私拍| 亚洲精品美女在线观看播放| 亚洲精品一区中文字幕乱码| 日本人成精品视频在线| 亚洲国产美女久久久久| 91性高湖久久久久久久久_久久99| 欧美成人三级视频网站| 日韩在线视频中文字幕| 亚洲性69xxxbbb| 日本久久91av| 欧美在线观看网站| 亚洲精品wwww| 欧美成人午夜激情| 精品久久在线播放| 精品久久久久久久久久国产| 亚洲图片制服诱惑| 久久色在线播放| 欧美性资源免费| 欧美成人一区在线| 国产日韩欧美视频| 精品亚洲一区二区三区在线播放| 亚洲区免费影片| 在线亚洲男人天堂| 疯狂欧美牲乱大交777| 亚洲国产高清自拍| 久久精品一区中文字幕| 97热在线精品视频在线观看| 久久久久久久色| 日韩黄色在线免费观看| 亚洲一区久久久| 国产精品久久av| 国产精品第10页| 国产免费一区视频观看免费| 亚洲bt天天射| 亚洲一区二区三区四区在线播放| 色中色综合影院手机版在线观看| 亚洲人av在线影院| 久久综合网hezyo| 国产在线观看精品一区二区三区| 国产精品狼人色视频一区| 精品久久久久久中文字幕大豆网| 亚洲欧美自拍一区| 91久久精品国产| 成人做爰www免费看视频网站| 992tv在线成人免费观看| 夜夜嗨av一区二区三区四区| 国产盗摄xxxx视频xxx69| 精品国产视频在线| 欧美亚洲成人xxx| 91精品国产综合久久香蕉最新版| 国产精品福利无圣光在线一区| 操人视频在线观看欧美| 91精品视频在线播放| 亚洲欧美第一页| 亚洲精品小视频| 日韩在线观看免费全集电视剧网站| 成人一区二区电影| 日韩欧美福利视频| 亚洲国产女人aaa毛片在线| 欧美精品免费在线观看| 国产精品69久久| 欧美日韩午夜剧场| 91免费人成网站在线观看18| 5278欧美一区二区三区| 国产精品专区第二| 亚洲国产古装精品网站| 亚洲女人被黑人巨大进入| 久久久精品在线观看| 久久久亚洲成人| 亚洲成色999久久网站| 欧美精品电影免费在线观看| 91黑丝在线观看| 久久综合伊人77777蜜臀| 美女啪啪无遮挡免费久久网站| 亚洲成人精品视频在线观看| 亚洲最新av网址| 国产盗摄xxxx视频xxx69| 国产精品a久久久久久| 国内精品久久久久伊人av| 欧美激情va永久在线播放| 国产欧美日韩精品丝袜高跟鞋| 韩国国内大量揄拍精品视频| 午夜精品一区二区三区视频免费看| 亚洲成人久久电影| 精品视频在线播放色网色视频| 77777少妇光屁股久久一区| 欧美激情二区三区| 欧美大片第1页| 日韩av在线免费观看| 97涩涩爰在线观看亚洲| 国产精品色午夜在线观看| 日韩大陆毛片av| 久久亚洲国产精品成人av秋霞| 欧洲成人午夜免费大片| 欧美精品久久久久久久久久| 欧美黄网免费在线观看| 久久久久久久一区二区三区| 国产精品视频久久久久| 亚洲乱码av中文一区二区| 精品免费在线视频| 欧洲美女7788成人免费视频| 都市激情亚洲色图| 日韩av在线影院| 色妞在线综合亚洲欧美| 亚洲区免费影片| 日本一区二区在线播放| 亚洲国产另类 国产精品国产免费| 亚洲美女在线观看| 欧美精品videosex极品1| 欧美日韩国产999| 亚洲午夜女主播在线直播| 欧美午夜片在线免费观看| 亚洲男人的天堂在线| 久久久国产精品视频| 欧美国产高跟鞋裸体秀xxxhd| 国产欧美日韩免费看aⅴ视频|