您好,登錄后才能下訂單哦!
這篇“Java File類提供的方法與操作有哪些”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Java File類提供的方法與操作有哪些”文章吧。
File類事java.io包中唯一代表磁盤文件本身的對象。File類定義了一些與平臺無關的方法來操作文件,可以通過調用File類中的方法,實現創建、刪除、重命名文件等操作。File類的對象主要用來獲取文件本身的一些信息,如文件所在的目錄、文件的長度、文件讀寫權限等。數據流可以將數據寫入到文件中,文件也是數據流最常用的數據媒體。
可以使用File類創建一個文件對象。通常使用以下三種方法來創建文件對象。
(1)File(String pathname)
該構造方法通過將給定路徑名字字符串轉換為抽象路徑名來創建一個新的File實例。例如:
File file = new File("d:/1.txt");
File類提供了很多方法以獲取文件本身的信息,常用的方法如下:
方法 | 返回值 | 說明 |
---|---|---|
getName() | String | 獲取文件的名稱 |
canRead() | boolean | 判斷文件是否為可讀的 |
canWrite() | boolean | 判斷文件是否可被寫入 |
exists() | boolean | 判斷文件是否存在 |
delete() | void | 刪除文件 |
length() | long | 獲取文件的長度(以字節為單位) |
getAbsolutePath() | String | 獲取文件的絕對路徑 |
getParent() | String | 獲取文件的父路徑 |
isFile() | boolean | 獲取文件的名稱 |
isDirectory() | boolean | 判斷文件是否為一個目錄 |
isHidden() | boolean | 判斷文件是否為隱藏文件 |
lastModified() | long | 獲取文件最后修改時間 |
程序運行期間,大部分數據都在內存中進行操作,當程序結束或關閉時,這些數據將消失。如果需要將數據永久保存,可以使用文件輸入/輸出流與指定文件建立連接,將需要的數據永久保存到文件中。
FileInputStream 與 FileOutputStream類
FileInputStream類與FileOutputStream類都用來操作磁盤文件。
FileInputStream類常用的構造方法如下:
FileInputStream(String name)
FileInputStream(File file)
第一個構造方法使用給定的文件名name創建一個FileInputStream對象,第二個構造方法使用File對象創建FileInputStream對象。第一個構造方法比較簡單,但第二個構造方法允許在把文件鏈接輸入流之前對文件作進一步分析。
FileOutputStream類有與FileInputStream類相同的參數構造方法,創建一個FileOutputStream對象時,可以指定不存在的文件名,但此文件不能是一個已被其他程序打開的文件。例如:
public class FileTest{ public static void main(String[]args){ File file = new File("world.txt"); try{ FileOutputStream out = new FileOutputStream(file); byte buy[] = "我有一頭小毛驢,我從來也不騎。".getBytes(); out.write(buy); out.close(); } catch(Exception e) { e.printStackTrace(); } try{ //創建FileInputStream類對象 FileInputStream in = new FileInputStream(file); byte byt[] = new byte[1024]; //創建byte數組 int len = in.read(byt); //從文件中讀取信息 System.out.println("文件中的信息是:" + new String(byt, 0, len)) in.close(); } catch(Exception e) { e.printStackTrace(); } } }
使用FileOutputStream類向文件中寫入數據與使用FileInputStream類從文件中將內容讀出來,都存在一點不足,即這兩個類都只提供了對字節或字節數組的讀取方法。由于漢字在文件中占用兩個字節,如果使用字節流,讀取不好可能會出現亂碼的現象,此時采用字符流Reader或Writer類即可避免這種現象。
FileReader流順序地讀取文件,只要不關閉流,每次調用read()方法就順序地讀取源中其余的內容,直到源的末尾或流被關閉。
本實例創建Swing窗體,單機“寫入文件”按鈕將實現文本框中的數據寫入磁盤文件中,單機“讀取文件”按鈕,系統將磁盤文件中的信息顯示在文本框里。
public class Ftest extends JFrame{ private static final long serialVersionUID = 1L; private JPanel jContentPane = null; //創建面板對象 private JTextArea jTextArea = null; //創建文本域對象 private JPanel controlPanel = null; //創建面板對象 private JButton openButton = null; //創建按鈕對象 private JButton closeButton = null; //創建按鈕對象 private JButton getOpenButton(){ if(openButton == null){ openButton = new JButton(); openButton.setText("寫入文件"); //修改按鈕的提示信息 openButton.addActionListener(new ActionListener(){ //按鈕的單機事件 public void actionPerformed(ActionEvent e){ File file = new File("world.txt"); //創建文件對象 try{ FileWriter out = new FileWriter(file); //創建FileWriter對象 String s = jTextArea.getText(); //獲取文本域中文本 out.write(s); //將信息寫入磁盤文件 out.close(); //將流關閉 catch(Exception e1){ e1.printStackTrace(); } } }); } return openButton; } private JButton getCloseButton(){ if(closeButton == null){ closeButton = new JButton(); closeButton.setText("讀取文件"); //修改按鈕的提示信息 closeButton.addActionListener(new ActionListener(){ //按鈕的單擊事件 public void actionPerformed(ActionEvent e){ File file = new File("world.txt"); //創建文件對象 try{ FileReader in = new FileReader(file); //創建FileReader對象 char byt[] = new char[1024]; //創建char型數組 int len = in.read(byt); //將字節讀入數組 jTextArea.setText(new String(byt, 0, len)); //設置文本域的顯示信息 in.close(); //關閉流 }catch(Exception e1){ e1.printStackTrace(); } } }); } return closeButton; } public Ftest(){ super(); initialize(); } private void initilize(){ this.setSize(300,200); this.setContentPane(getJContentPane()); this.setTitle("JFrame"); } private JPanel getJContentPane(){ if(jContentPane == null){ jContentPane = new JPanel(); jContentPane.setLayout(new BorderLayout()); jContentPane.add(getJTextArea(), BorderLayout.CENTER); jContentPane.add(getControlPanel(),BorderLayout.SOUTH); } return jContentPane; } public static void main(String[] args){ //主方法 Ftest thisClass = new Ftest(); //創建本類對象 thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); thisClass.setVisible(true); //設置該窗體的顯示狀態 } }
以上就是關于“Java File類提供的方法與操作有哪些”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。