1. 程式人生 > >Java訪問磁碟檔案機制。

Java訪問磁碟檔案機制。

    我們知道,資料在磁碟中的唯一最小描述就是檔案,也就是說上層應用程式只能通過檔案來操作磁碟上的資料,檔案也是作業系統和磁碟驅動器互動的最小單元。值得注意的是,在Java中通常的File並不代表一個真實存在的檔案物件,當你指定一個路徑描述符時,他就會返回一個代表這個路徑的虛擬物件,這個可能是一個真實存在的檔案或者是一個包含多個檔案的目錄。為何要這樣設計呢?因為在大多數情況下,我們並不關心這個檔案是否真的存在,而是關心對這個檔案到底如何操作。
    何時會真正檢查一個檔案存不存在?就是在真正要讀取這個檔案時。例如,FileInputStream類都是操作一個檔案的介面,注意到在建立一個FileInputStream物件時會建立一個FileDescriptor物件,其實這個物件就是真正操作的與低層作業系統相關聯的檔案描述。例如,可以呼叫FileDescriptor.sync()方法將作業系統快取中的資料強制重新整理到物理磁碟中。
    下面以讀取檔案的程式為例介紹如何從磁碟讀取一段文字字元,如上圖所示。
    當傳入一個檔案路徑時,將會根據這個路徑建立一個File物件來標識這個檔案,然後根據這個File物件建立真正讀取檔案的操作物件,這時將會真正建立一個關聯真實存在的磁碟檔案的檔案描述符FileDescriptor,通過這個物件可以直接控制這個磁碟檔案。由於我們需要讀取的是字元格式,所以需要StreamDecoder類將byte解碼為char格式。至於如何從磁碟驅動器上讀取一段資料,作業系統會幫我們完成。至於作業系統是如何將資料持久化到磁碟及如何建立資料結構的,需要根據當前作業系統使用何種檔案系統來回答。

相關推薦

Java訪問磁碟檔案機制

    我們知道,資料在磁碟中的唯一最小描述就是檔案,也就是說上層應用程式只能通過檔案來操作磁碟上的資料,檔案也是作業系統和磁碟驅動器互動的最小單元。值得注意的是,在Java中通常的File並不代表一個真實存在的檔案物件,當你指定一個路徑描述符時,他就會返回一個代表這個路

JAVA 訪問別人的介面

public class Test1111 {    public static void main(String[] args) throws Exception {        //這裡寫你要訪問的url地址        String url = "www.baidu

C小程式—將一個磁碟檔案中的資訊複製到另一個磁碟檔案

#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){FILE *fp1, *fp2;      //定義指向FILE型別檔案的指標變數char ch, fil

java訪問xml檔案

import java.io.*; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.do

Java訪問配置檔案

package com.dashuo.da.common.function; import java.io.FileInputStream; import java.util.Properties; public class MongoTask2 { /** * * 主測試方法

java連線hdfs檔案系統並訪問檔案

package hadoop; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import org.apache.

Atitit 持久化 Persistence概念的藝術 目錄 1. 持久化是將程式資料在持久狀態和瞬時狀態間轉換的機制 1 2. DBC就是一種持久化機制檔案IO也是一種持久化機制 2 3.

Atitit 持久化 Persistence概念的藝術   目錄 1. 持久化是將程式資料在持久狀態和瞬時狀態間轉換的機制。 1 2. DBC就是一種持久化機制。檔案IO也是一種持久化機制。 2 3. 日常持久化的方法 2 4. 理解與分類 3 4.1

Atitit spirngboot 訪問 html檔案總結 自設計web伺服器原理與實現 Url路由壓力,讀取url,獲得專案更路徑絕對路徑,拼接為檔案路徑讀取文建內容輸出即可 目錄路徑 u

Atitit spirngboot  訪問 html檔案總結 自設計web伺服器原理與實現   Url路由壓力,讀取url,獲得專案更路徑絕對路徑,拼接為檔案路徑。讀取文建內容輸出即可   目錄路徑  upload。Html在專案跟目錄

java 讀取json檔案方法以及操作json物件方法

 1   獲取本地js檔案路徑 Fileuri = ParseTools.class.getClassLoader().getResource("com/zxcl/parsejs/XinZhongChengParse.js").toURI(); 2 

java訪問windows遠端共享檔案的方法

沒密碼的,直接用url訪問就可以了,跟本地檔案相同。 有密碼的,用smb。 遠端需要開啟smb。   win10啟動smb的方法:https://jingyan.baidu.com/article/47a29f2477fb56c014239996.html 注意,配完必須要重啟window

eclipse中對於jsp檔案訪問之後生成的java和class檔案存在位置

我們一般開發時,使用Tomcat,其在Eclipse中提供了三種位置配置選項: 1.use workspace metadata (使用工作空間元資料) 如果是在這種選擇下,eclipse中jsp檔案,在被訪問之後,就會在eclipse當前工作專案區間下建立相

Java檔案讀取 jar包內檔案讀取

最近遇到一些Jar包內外配置檔案讀取的問題。索性自己測試總結一下,與大家分享。 主要是關於ClassLoader.getResource和Class.getResource方法路徑區別的問題。 1. 絕對路徑檔案讀取,最簡單,最直接的方式

Java IO----磁碟IO工作機制

Java虛擬機器中,讀取/寫入檔案的IO操作需要呼叫系統介面。 讀:read() 寫:write() 一、標準訪問檔案方式 應用程式呼叫系統介面read,作業系統系統檢查核心快取記憶體是否有需要資料,有快取則直接讀取,沒有則從磁碟讀取。讀取操作同上。

《連載 | 物聯網框架ServerSuperIO教程》1.4種通訊模式機制附小文:招.NET開發,結果他轉JAVA了,一切都是為了生活

參考文章: 一、感慨       上大學的時候,沒有學過C#,花了5塊錢在地壇書市買了一本教程,也就算是正式入行了。後來深造,學過JAVA,後來迫於生計,打算轉JAVA了。後來考慮考慮,自己寫的框架還是有很大發展餘地,後來還是在C#的陣地上堅持了下來。從一開始的雛形,到SuperIO的

源程式Bwriter.java(從鍵盤輸入一系列字串,寫入到某磁碟檔案中)

源程式Bwriter.java import java.io.*; public class Bwriter { public static void main(String args[]) throws Exception {InputStreamReader i = new

HttpClient超時機制(安全問題處理:訪問超大檔案控制)

背景      最近一直在做專案,其中的一個功能點,主要是訪問外部網站並獲取頁面的字串,具體的網站url完全是由使用者輸入,所以存在一定的安全隱患。     從測試來看,如果給定的一部電影的url地址,連結會一直不能被關閉,直到資料流被讀完,如果來個幾十次這樣的請求,應用估計也差不多崩潰了 說明:

Ubunutu+ Windows雙系統下Ubuntu訪問windows磁碟檔案的方法

直接開啟磁碟會顯示如下錯誤:這時候注意觀察上圖的提示資訊:Error mounting /dev/sda3這時候開啟終端,輸入如下指令:sudo  ntfsfix /dev/sda3像這樣成功執行之後就

java載入class檔案(類載入機制)

一概述:在編譯期,所有的*.java檔案被編譯成.class檔案。在執行期,class檔案只有被載入到jvm記憶體中才能執行。這個裝載工作是由類裝載器完成的。實質就是把class檔案從硬碟讀取到記憶體中,並對資料進行校驗,轉化解析和初始化,最終形成可以被jvm直接使用的ja

五十道程式設計小題目 --- 50 有五個學生,每個學生有3門課的成績,計算出平均成績,況原有的資料和計算出的平均分數存放在磁碟檔案"stud"中java

【程式50】 題目:有五個學生,每個學生有3門課的成績,從鍵盤輸入以上資料(包括學生號,姓名,三門課成績),計算出平均成績,況原有的資料和計算出的平均分數存放在磁碟檔案"stud"中。 import java.io.BufferedReader; import ja

Java自定義檔案型別下載,下載檔案時,頁面會直接開啟檔案而不能下載檔案

  問題:Java自定義檔案型別下載,下載檔案時,頁面會直接開啟檔案而不能下載檔案。 解決: 需要在tomcat/conf/下web.xml進行配置,若檔案字尾名為 .CAA,則 <mime-mapping>  &n