欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java?File類提供的方法與操作

 更新時間:2023年03月30日 09:48:41   作者:包小志  
Java使用File類來表示計算機(jī)系統(tǒng)磁盤文件的對象類型。File中提供了大量的方法,可以對文件進(jìn)行增加、刪除、修改、重命名等常規(guī)操作。File類的對象會存儲文件自身的信息,例如文件在系統(tǒng)中的存儲目錄、文件大小、文件讀寫權(quán)限等

File類

File類事java.io包中唯一代表磁盤文件本身的對象。File類定義了一些與平臺無關(guān)的方法來操作文件,可以通過調(diào)用File類中的方法,實現(xiàn)創(chuàng)建、刪除、重命名文件等操作。File類的對象主要用來獲取文件本身的一些信息,如文件所在的目錄、文件的長度、文件讀寫權(quán)限等。數(shù)據(jù)流可以將數(shù)據(jù)寫入到文件中,文件也是數(shù)據(jù)流最常用的數(shù)據(jù)媒體。

1.文件的創(chuàng)建與刪除

可以使用File類創(chuàng)建一個文件對象。通常使用以下三種方法來創(chuàng)建文件對象。

(1)File(String pathname)

該構(gòu)造方法通過將給定路徑名字字符串轉(zhuǎn)換為抽象路徑名來創(chuàng)建一個新的File實例。例如:

File file = new File("d:/1.txt");

2.File類提供的方法

File類提供了很多方法以獲取文件本身的信息,常用的方法如下:

方法返回值說明
getName()String獲取文件的名稱
canRead()boolean判斷文件是否為可讀的
canWrite()boolean判斷文件是否可被寫入
exists()boolean判斷文件是否存在
delete()void刪除文件
length()long獲取文件的長度(以字節(jié)為單位)
getAbsolutePath()String獲取文件的絕對路徑
getParent()String獲取文件的父路徑
isFile()boolean獲取文件的名稱
isDirectory()boolean判斷文件是否為一個目錄
isHidden()boolean判斷文件是否為隱藏文件
lastModified()long獲取文件最后修改時間

3.文件輸入/輸出流

程序運行期間,大部分?jǐn)?shù)據(jù)都在內(nèi)存中進(jìn)行操作,當(dāng)程序結(jié)束或關(guān)閉時,這些數(shù)據(jù)將消失。如果需要將數(shù)據(jù)永久保存,可以使用文件輸入/輸出流與指定文件建立連接,將需要的數(shù)據(jù)永久保存到文件中。

FileInputStream 與 FileOutputStream類

FileInputStream類與FileOutputStream類都用來操作磁盤文件。

FileInputStream類常用的構(gòu)造方法如下:

  • FileInputStream(String name)
  • FileInputStream(File file)

第一個構(gòu)造方法使用給定的文件名name創(chuàng)建一個FileInputStream對象,第二個構(gòu)造方法使用File對象創(chuàng)建FileInputStream對象。第一個構(gòu)造方法比較簡單,但第二個構(gòu)造方法允許在把文件鏈接輸入流之前對文件作進(jìn)一步分析。

FileOutputStream類有與FileInputStream類相同的參數(shù)構(gòu)造方法,創(chuàng)建一個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{
			//創(chuàng)建FileInputStream類對象
			FileInputStream in = new FileInputStream(file);
			byte byt[] = new byte[1024]; //創(chuàng)建byte數(shù)組
			int len = in.read(byt); //從文件中讀取信息
			System.out.println("文件中的信息是:" + new String(byt, 0, len))
			in.close();
		} catch(Exception e) {
			e.printStackTrace();
		}
	}
}

4.FileReader和FileWriter類

使用FileOutputStream類向文件中寫入數(shù)據(jù)與使用FileInputStream類從文件中將內(nèi)容讀出來,都存在一點不足,即這兩個類都只提供了對字節(jié)或字節(jié)數(shù)組的讀取方法。由于漢字在文件中占用兩個字節(jié),如果使用字節(jié)流,讀取不好可能會出現(xiàn)亂碼的現(xiàn)象,此時采用字符流Reader或Writer類即可避免這種現(xiàn)象。

FileReader流順序地讀取文件,只要不關(guān)閉流,每次調(diào)用read()方法就順序地讀取源中其余的內(nèi)容,直到源的末尾或流被關(guān)閉。

本實例創(chuàng)建Swing窗體,單機(jī)“寫入文件”按鈕將實現(xiàn)文本框中的數(shù)據(jù)寫入磁盤文件中,單機(jī)“讀取文件”按鈕,系統(tǒng)將磁盤文件中的信息顯示在文本框里。

public class Ftest extends JFrame{
	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null; //創(chuàng)建面板對象
	private JTextArea jTextArea = null; //創(chuàng)建文本域?qū)ο?
	private JPanel controlPanel = null; //創(chuàng)建面板對象
	private JButton openButton = null; //創(chuàng)建按鈕對象
	private JButton closeButton = null; //創(chuàng)建按鈕對象
	private JButton getOpenButton(){
		if(openButton == null){
			openButton = new JButton();
			openButton.setText("寫入文件"); //修改按鈕的提示信息
			openButton.addActionListener(new ActionListener(){
				//按鈕的單機(jī)事件
				public void actionPerformed(ActionEvent e){
					File file = new File("world.txt"); //創(chuàng)建文件對象
					try{
						FileWriter out = new FileWriter(file); //創(chuàng)建FileWriter對象
						String s = jTextArea.getText(); //獲取文本域中文本
						out.write(s); //將信息寫入磁盤文件
						out.close(); //將流關(guān)閉
					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"); //創(chuàng)建文件對象
					try{
						FileReader in = new FileReader(file); //創(chuàng)建FileReader對象
						char byt[] = new char[1024]; //創(chuàng)建char型數(shù)組
						int len = in.read(byt); //將字節(jié)讀入數(shù)組
						jTextArea.setText(new String(byt, 0, len)); //設(shè)置文本域的顯示信息
						in.close(); //關(guān)閉流
					}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(); //創(chuàng)建本類對象
		thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		thisClass.setVisible(true); //設(shè)置該窗體的顯示狀態(tài)
	}
}

到此這篇關(guān)于Java File類提供的方法與操作的文章就介紹到這了,更多相關(guān)Java File類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot中熔斷器的原理和使用詳解

    SpringBoot中熔斷器的原理和使用詳解

    這篇文章主要介紹了SpringBoot中熔斷器的原理和使用詳解,熔斷器是一種用于處理分布式系統(tǒng)中故障的設(shè)計模式,它可以防止出現(xiàn)故障的服務(wù)對整個系統(tǒng)造成連鎖反應(yīng),需要的朋友可以參考下
    2023-07-07
  • Java線程之join_動力節(jié)點Java學(xué)院整理

    Java線程之join_動力節(jié)點Java學(xué)院整理

    join() 定義在Thread.java中,下文通過源碼分享join(),需要的朋友參考下吧
    2017-05-05
  • Java中Map接口使用以及有關(guān)集合的面試知識點匯總

    Java中Map接口使用以及有關(guān)集合的面試知識點匯總

    在java面試過程中,Map時常會被作為一個面試點來問,下面這篇文章主要給大家介紹了關(guān)于Java中Map接口使用以及有關(guān)集合的面試知識點匯總的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Spring Boot 項目做性能監(jiān)控的操作流程

    Spring Boot 項目做性能監(jiān)控的操作流程

    這篇文章主要介紹了Spring Boot 項目如何做性能監(jiān)控,本文通過實例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Java中使用@CrossOrigin和Proxy解決跨域問題詳解

    Java中使用@CrossOrigin和Proxy解決跨域問題詳解

    這篇文章主要介紹了Java中使用@CrossOrigin和Proxy解決跨域問題詳解,在Web開發(fā)中,如果前端頁面和后端接口不在同一個域名下,就會發(fā)生跨域請求的問題,同源策略是瀏覽器的一種安全策略,它限制了來自不同源的客戶端腳本在瀏覽器中運行時的交互,需要的朋友可以參考下
    2023-12-12
  • 關(guān)于Java應(yīng)用日志與Jaeger的trace關(guān)聯(lián)的問題

    關(guān)于Java應(yīng)用日志與Jaeger的trace關(guān)聯(lián)的問題

    這篇文章主要介紹了Java應(yīng)用日志如何與Jaeger的trace關(guān)聯(lián),通過jaeger發(fā)現(xiàn)這十次請求中有一次耗時特別長,想定位一下具體原因,感興趣的朋友跟隨小編一起看看吧
    2022-01-01
  • 關(guān)于Filter中獲取請求體body后再次讀取的問題

    關(guān)于Filter中獲取請求體body后再次讀取的問題

    這篇文章主要介紹了關(guān)于Filter中獲取請求體body后再次讀取的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java實現(xiàn)字符串切割的方法詳解

    Java實現(xiàn)字符串切割的方法詳解

    這篇文章主要為大家介紹了一些Java中切割字符串的小技巧,可以把性能提升5~10倍。文中的示例代碼講解詳細(xì),快跟隨小編一起學(xué)習(xí)一下
    2022-03-03
  • java實現(xiàn)小貓釣魚游戲

    java實現(xiàn)小貓釣魚游戲

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)小貓釣魚游戲,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Java Web學(xué)習(xí)之MySQL在項目中的使用方法

    Java Web學(xué)習(xí)之MySQL在項目中的使用方法

    mysql數(shù)據(jù)庫是我們在日常開發(fā)中經(jīng)常會用到的,下面這篇文章主要給大家介紹了關(guān)于Java Web學(xué)習(xí)之MySQL在項目中的使用方法,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04

最新評論