java學習之檔案基本操作

來源:互聯網
上載者:User

標籤:檔案操作   file類   randomaccessfile類   

一、File類

檔案的建立

package file;import java.io.File;import java.io.IOException;public class CreateFile {public static void main(String[] args) {// TODO 自動產生的方法存根      File file=new File("C:\\Users\\Public\\Desktop\\demo.txt");       try{    file.createNewFile();        }catch(IOException e){      e.printStackTrace();      }}}
檔案的刪除
package file;import java.io.File;public class DeleteFile {public static void main(String[] args) {// TODO 自動產生的方法存根File file = new File("C:\\Users\\Public\\Desktop\\demo.txt");file.delete();}}
檔案的尋找

package file;import java.io.File;public class ExistFile {public static void main(String[] args) {// TODO 自動產生的方法存根File file = new File("C:\\Users\\Public\\Desktop\\demo.txt");if(file.exists()){System.out.println("檔案存在!");}else{System.out.println("檔案不存在!");}}}
路徑的判斷
package file;import java.io.File;public class JudgeFile {public static void main(String[] args) {// TODO 自動產生的方法存根File file1=new File("C:\\Users\\Public\\Desktop\\demo.txt");File file2=new File("C:\\Users\\Public\\Desktop");System.out.println(file1.isFile());System.out.println(file2.isDirectory());}}

目錄輸出

直接檔案輸出

package file;import java.io.File;public class FilePath {public static void main(String[] args) {// TODO 自動產生的方法存根File file=new File("C:\\Users\\Public\\Desktop");String path[]=file.list();int len=path.length;for(int i=0;i<len;i++){System.out.println(path[i]);}}}

路徑輸出

package file;import java.io.File;public class FilePath {public static void main(String[] args) {// TODO 自動產生的方法存根File file=new File("C:\\Users\\Public\\Desktop");File[] path=file.listFiles();//--------------------這裡發生了改變,以File對象為數組元素int len=path.length;for(int i=0;i<len;i++){System.out.println(path[i]);}}}
建立檔案夾

package file;import java.io.File;
public class CreateDirect {public static void main(String[] args) {// TODO 自動產生的方法存根File file=new File("C:\\Users\\Public\\Desktop\\demo"); file.mkdir();//建立demo檔案夾}}}


在建立一個檔案的同時在檔案夾內建立檔案

package file;import java.io.File;import java.io.IOException;public class CreateDirect {public static void main(String[] args) {// TODO 自動產生的方法存根File file=new File("C:\\Users\\Public\\Desktop\\javatest\\demo.txt"); file.getParentFile().mkdir();//建立d\\javatest檔案夾try {file.createNewFile();} catch (IOException e) {// TODO 自動產生的 catch 塊e.printStackTrace();}}}


注意:因為linux與windows的檔案層次分隔字元分別為/和\,所以為了實現代碼的跨平台,本文中的\\皆可改為File.separator.

問題:列出某個目錄下的全部檔案(包括子目錄中的子檔案)

import java.io.File;public class ListDirectoryDemo {public static void main(String[] args) {File file = new File("d:" + File.separator);list(file);}public static void list(File file) {if (file.isDirectory()) {File lists[] = file.listFiles();if (lists != null) {for (int i = 0; i < lists.length; i++) {list(lists[i]);// 列出內容}}}System.out.println(file);}}

二、RandomAccessFile

構造方法:public RandomAccessFile(File file,String mode)throws FileNotFoundException

寫操作:

import java.io.File;import java.io.RandomAccessFile;public class RandomWrite {public static void main(String[] args) throws Exception {// 所有異常拋出File file = new File("C:\\Users\\Public\\Desktop\\demo.txt");// 指定要操作的檔案RandomAccessFile raf = new RandomAccessFile(file, "rw");// 以讀寫的形式進行操作// 寫入第一條資料String name = "zhangsan";// 表示姓名int age = 20; // 表示年齡raf.writeBytes(name); // 以位元組的方式將字串寫入raf.writeInt(age); // 寫入整型資料// 寫入第二條資料name = "lisi    ";// 表示姓名age = 19; // 表示年齡raf.writeBytes(name); // 以位元組的方式將字串寫入raf.writeInt(age); // 寫入整型資料// 寫入第三條資料name = "wangwu  ";// 表示姓名age = 21; // 表示年齡raf.writeBytes(name); // 以位元組的方式將字串寫入raf.writeInt(age); // 寫入整型資料raf.close();// 檔案操作的最後一定要關閉}}
讀操作:
import java.io.File;import java.io.RandomAccessFile;public class RandomRead {public static void main(String[] args) throws Exception {// 所有異常拋出File file = new File("C:\\Users\\Public\\Desktop\\demo.txt");// 指定要操作的檔案RandomAccessFile raf = new RandomAccessFile(file, "r");// 以讀的形式進行操作byte b[] = null;// 定義位元組數組String name = null;int age = 0;b = new byte[8];raf.skipBytes(12); // 跨過第一個人的資訊System.out.println("第二個人的資訊:");for (int i = 0; i < 8; i++) {b[i] = raf.readByte(); // 讀取位元組}age = raf.readInt();// 讀取數字System.out.println("\t|- 姓名:" + new String(b));System.out.println("\t|- 年齡:" + age);raf.seek(0);// 回到開始位置System.out.println("第一個人的資訊:");for (int i = 0; i < 8; i++) {b[i] = raf.readByte(); // 讀取位元組}age = raf.readInt();// 讀取數字System.out.println("\t|- 姓名:" + new String(b));System.out.println("\t|- 年齡:" + age);raf.skipBytes(12); // 跨過第二個人的資訊System.out.println("第三個人的資訊:");for (int i = 0; i < 8; i++) {b[i] = raf.readByte(); // 讀取位元組}age = raf.readInt();// 讀取數字System.out.println("\t|- 姓名:" + new String(b));System.out.println("\t|- 年齡:" + age);raf.close();// 檔案操作的最後一定要關閉}}


java學習之檔案基本操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.