1. 程式人生 > >Java檔案操作小結

Java檔案操作小結

File

列出指定目錄下滿足指定條件的檔案的清單,包括子目錄Demo

// 把temp下的所有的txt檔案的絕對路徑寫入一個文字檔案,包括子目錄下的txt檔案
//1:得到指定目錄下的所有的txt檔案,存到集合中
//2:把集合中的txt檔案的資訊寫入到檔案中
import java.io.*;
import java.util.*;
class  Demo {
    public static void main(String[] args) throws IOException {
        File dir = new File("e:\\java\\temp");

        List<File> list = new
ArrayList<File>(); fileToList(dir,list); File file = new File("txtlist.txt"); if(!file.exists()) file.createNewFile(); listToFile(list,file); } //1:得到指定目錄下的所有的txt檔案,存到集合中 public static void fileToList(File dir,List<File> list) { File[] files = dir.listFiles(); for
(File file:files) { if(file.isDirectory()) { fileToList(file,list); } else { if(file.getName().endsWith("txt")) list.add(file); } } } //2:把集合中的java檔案的資訊寫入到檔案中 public static void
listToFile(List<File> list,File file)throws IOException { BufferedWriter bw = new BufferedWriter(new FileWriter(file)); for(File files:list) { bw.write(files.getAbsolutePath()); bw.newLine(); bw.flush(); } bw.close(); } }

Properties

基礎用法Demo

import java.util.*;
import java.io.*;
class Demo {
    public static void main(String[] args) throws IOException {
        /*
           Properties:繼承了HashTable,HashTable實現了 Map介面,所以Properties是一個集合類

                      是一個可以和流結合使用的集合類

                      儲存的必須是屬性型別的鍵值對,而且鍵值對都是字串型別的,所以沒有使用泛型
        */

        //fun1();
        //fun2();

        fun3();
    }

    public static void fun3() throws IOException {
        Properties pro = new Properties();

        // 把屬性檔案中的屬性資訊載入到記憶體
        FileReader fr = new FileReader("config.properties");
        //使用讀取流物件讀取檔案,把讀取出的鍵值對存到集合中
        pro.load(fr);

        pro.list(System.out);

        //修改顏色---從記憶體中的修改
        pro.setProperty("color","red");

        pro.list(System.out);
        //把記憶體中做的修改儲存到檔案中
        //把集合中的屬性資訊寫入到檔案
        FileWriter fw = new FileWriter("config.properties");
        pro.store(fw,"haha");

        fr.close();
        fw.close();
    }

    public static void fun2() {
        //得到所有的系統屬性集
        Properties pro = System.getProperties();

        //sop(pro);

        /*Set<String> keys = pro.stringPropertyNames();
        for(String key:keys) {
            String value = pro.getProperty(key);
            sop(key+"="+value);
        }*/
        //從集合中修改---從記憶體中修改
        pro.setProperty("user.name","weixin");

        pro.list(System.out);


    }

    //Peroperties的基本使用
    public static void fun1() {
        //建立一個Peroperties集合類物件
        Properties pro = new Properties();

        //儲存鍵值對
        pro.setProperty("name","lisi");//儲存鍵值對
        pro.setProperty("age","23");
        pro.setProperty("sex","nv");

        Set<String> keys = pro.stringPropertyNames();//得到所有鍵的集合
        Iterator<String> ite = keys.iterator();
        while(ite.hasNext()) {
            String key = ite.next();
            String value = pro.getProperty(key);//根據鍵獲取值
            sop(key+"="+value);
        }
        //在記憶體中做的修改
        pro.setProperty("name","zhangsan");

        Set<String> jian = pro.stringPropertyNames();
        for(String key:jian) {
            String v = pro.getProperty(key);
            sop(key+"="+v);
        }

    }
    public static void sop(Object obj) {
        System.out.println(obj);
    }
}

檔案分割Demo

import java.io.*;
import java.util.*;
class Demo {
    public static void main(String[] args)throws IOException {
        //檔案的分割
        File file = new File("ok.jpg");
        fenge(file);
    }

    public static void fenge(File file)throws IOException {
        if(file.isDirectory()) {
            System.out.println("不是檔案,不能分割");
            return;
        }
        //把分割出的檔案放到同一個目錄下
        File dir = new File("fenge");
        if(!dir.exists())
            dir.mkdir();

        FileInputStream fis = new FileInputStream(file);
        FileOutputStream fos = null;

        byte[] arr = new byte[1024*1024*2];//分割出的每個檔案的大小是 2m
        int len = 0;
        int num = 0;
        while((len = fis.read(arr))!=-1) {
            fos = new FileOutputStream(new File(dir,(++num)+".fenge")); //每次都是new出一個新檔案
            fos.write(arr,0,len);
        }

        Properties pro = new Properties();
        pro.setProperty("fileType",file.getName());
        pro.setProperty("fileNum",String.valueOf(num));

        fos = new FileOutputStream(new File(dir,"readme.txt"));
        pro.store(fos,"xixi");


        fis.close();
        fos.close();

    }
}

RandomAccessFile

基本用法Demo

import java.io.*;
class Demo {
    public static void main(String[] args)throws IOException {
        /*
         RandomAccessFile:
                        只能訪問檔案
                        不屬於IO體系
                        內部既有位元組輸入流,也有位元組輸出流
                        內部有一個位元組陣列,可以通過指標操作該陣列,所以可以隨機
        */

        //writeData();

        // 執行writeData後random.txt內容為:“劉能___8________趙四___:”
        readData();

    }

    public static void readData()throws IOException {
        RandomAccessFile  random = new RandomAccessFile("random.txt","r");
           byte[] arr = new byte[4];
        int len = random.read(arr);
        int age = random.readInt();

        System.out.println(new String(arr,0,len)+","+age);

        long index = random.getFilePointer();
        System.out.println("index="+index);//8

           random.seek(16);//讓指標指向 趙四的起始位置

        len = random.read(arr);
        age = random.readInt();
        System.out.println(new String(arr,0,len)+","+age);
    }

    public static void writeData()throws IOException {
        //在"rw"模式下,檔案不存在會自動建立 
        RandomAccessFile  random = new RandomAccessFile("random.txt","rw");

        //預設從檔案開頭寫入
        random.write("劉能".getBytes());
        random.writeInt(56);

        //獲取指標指向的位置
        long index = random.getFilePointer();
        System.out.println("index="+index);//8

        //設定指標的位置
        random.seek(16);

        random.write("趙四".getBytes());
        random.writeInt(58);

        index = random.getFilePointer();
        System.out.println("index="+index);//
    }
}

結束,晚安。☻☻☻

相關推薦

Java檔案操作小結

File 列出指定目錄下滿足指定條件的檔案的清單,包括子目錄Demo // 把temp下的所有的txt檔案的絕對路徑寫入一個文字檔案,包括子目錄下的txt檔案 //1:得到指定目錄下的所有的txt檔案,存到集合中 //2:把集合中的txt檔案的資

關於python的檔案操作小結

python中對檔案、資料夾(檔案操作函式)的操作需要涉及到os模組和shutil模組。 得到當前工作目錄,即當前Python指令碼工作的目錄路徑: os.getcwd() 返回指定目錄下的所有檔案和目錄名:os.listdir() 函式用來刪除一個檔案:os.remo

JavaJava檔案操作”實際應用

一、任務目標 1.完成一個java application應用程式,判別指定路徑下指定檔名的檔案是否存在。如果指定檔案存在,讀取並分別顯示其修改時間和檔案大小等屬性。 2.以文字方式開啟某一指定路徑指定檔名的文字檔案,讀取其內容並顯示。 3.以文字方式向某一指定路徑指定檔名的文字檔案寫入

Java檔案操作--inputStream轉為file

在玩爬蟲的過程中,其中有一部分是下載視訊,利用原生的HttpURLConnection獲得獲得inputStream之後,將輸入流寫入到本地檔案中,形成mp4格式的視訊檔案,發現最初使用的方法特別慢,想找尋更好的方法,提升效率。 1.原始方法 //pathName就是檔案儲存的路徑 Buff

Java檔案操作

用Java實現對文字檔案按行進行讀取,每讀取一行後顯示此行,統計每行有多少字元並顯示統計結果。最後顯示總的行數。 import java.io.BufferedReader; import java.io.File; import java.io.FileR

java檔案操作 (1)——判別指定檔案是否存在,讀取檔案修改時間和大小,讀取文字檔案內容,向文字檔案中寫入指定內容

任務要求: 完成一個java application應用程式,判別指定路徑下指定檔名的檔案是否存在。 如果指定檔案存在,讀取並分別顯示其修改時間和檔案大小等屬性。 以文字方式開啟某一指定路徑指定檔名的文字檔案,讀取其內容並顯示。 以文字方式向某

Java檔案操作及編碼總結

編碼/解碼 編碼:getBytes(); 按照預設編碼表編碼 字串-------->位元組 解碼:new String(); 按照預設編碼表解碼 位元組------->>字串 GBK 碼錶:漢字的儲存,第一個一定是負的。如果轉換器讀到的

Java檔案操作大全

//1.建立資料夾 //import java.io.*; File myFolderPath = new File(str1); try { if (!myFolderPath.exists()) { myFolderPath.mkdir(); } } catch (Exception e) { Syst

JAVA 檔案操作(1)

要求 完成一個java application應用程式,判別指定路徑下指定檔名的檔案是否存在。 如果指定檔案存在,讀取並分別顯示其修改時間和檔案大小等屬性。 以文字方式開啟某一指定路徑指定檔

JAVA 檔案操作(4)

要求: 通過二進位制流的操作方式把程式調整為可以實現對任何型別檔案進行檔案移動(而不是呼叫windows命令列的外部命令move)。 主要方法: renameTo 官方說明: public boolean renameTo(File dest) Renam

【Swift 2.1】共享檔案操作小結(iOS 8 +)

前言   適用於 iOS 8 + 本地共享檔案列表 宣告   歡迎轉載,但請保留文章原始出處:)   部落格園:http://www.cnblogs.com  農民伯伯: http://over140.cnblogs.com 正文    一、準備     1.1  預設 App 的檔案共

Java檔案操作工具類FileUtils

package com.suobei.xinzhiying.base.utils.file; import com.suobei.xinzhiying.base.result.ResponseMap; import com.suobei.xinzhiying.base.utils.aliy

C/C++對檔案操作小結

下面就介紹一下這些函式:1.fopen() fopen的原型是:FILE *fopen(const char *filename,const char *mode),fopen實現三個功能: 為使用而開啟一個流 ,把一個檔案和此流相連線 ,給此流返回一個FILR指標 引數filename指向要開啟的檔名,mo

Java 檔案操作類(操作目錄)

·列出目錄下的資訊:public String[ ] list();·列出所有的資訊以File類物件包裝:public File [ ] listFiles();範例1:列出資訊import java.

Java 檔案操作 & 目錄操作

檔案操作 寫入檔案、讀取內容、刪除檔案 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fil

非常實用的Java檔案操作

import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java

java 檔案操作

package test; import java.io.File; import java.io.FilenameFilter; import java.io.IOException; impor

java檔案操作大全 (資料收集)

檔案的建立/檢查與刪除 <%@   page   contentType="text/html;charset=gb2312"%> <%@   page   import="java.io.*"%> <html> &l

java 檔案操作之刪除

刪除某個目錄:當然 目錄下的所有子目錄和檔案都要求被刪除 要點:File.delete()用於刪除“某個檔案或者空目錄”! jdk文件: Deletes the file or directory denoted by this abstract pathname. If

Java檔案操作Utils

Java檔案操作常用函式記錄: package com.springwoods.utills; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.Buffe