搜尋
首頁JavaJava入門java中常用的文件操作有哪些

java中常用的文件操作有哪些

Nov 27, 2020 pm 03:30 PM
java文件

java中常用的文件操作有哪些

我们先来介绍一下字节流和字符流的概念及区别:

(学习视频分享:java教学视频

区别字节流和字符流概念

字节流:字节流读取的时候,读到一个字节就返回一个字节;主要用于读取图片,MP3,AVI视频文件。

字符流:字符流使用了字节流读到一个或多个字节,如读取中文时,就会一次读取2个字节。只要是处理纯文本数据,就要优先考虑使用字符流。

字节流和字符流区别

字节流操作的基本单元为字节;字符流操作的基本单元为Unicode码元。字节流默认不使用缓冲区;字符流使用缓冲区。字节流通常用于处理二进制数据,实际上它可以处理任意类型的数据,但它不支持直接写入或读取Unicode码元;字符流通常处理文本数据,它支持写入及读取Unicode码元。

文件常用操作:

创建、删除文件夹

String path = "F:\\test";
File myFile = new File(path);

if (!myFile.exists()) {
    // 创建文件夹
    myFile.mkdir();
    // myFile.mkdirs();

    // 删除文件夹
    myFile.delete();
}

// mkdirs()可以建立多级文件夹, mkdir()只会建立一级的文件夹

创建、删除文件

String content = "Hello World";

// 第一种方法:根据文件路径和文件名
String path = "F:\\test";
String filename = "test.txt";
File myFile = new File(path,filename);

// 第二种方法
String file = "F:\\test\\test.txt";
File myFile = new File(file);

if (!myFile.exists()) {
    // 创建文件(前提是目录已存在,若不在,需新建目录即文件夹)
    myFile.createNewFile();

    // 删除文件
    myFile.delete();
}

写入文件

// 第一种:字节流FileOutputStream
FileOutputStream fop = new FileOutputStream(myFile); 
byte[] contentInBytes = content.getBytes();
fop.write(contentInBytes);  
fop.flush();  
fop.close(); 

// 第二种:FileWriter(参数true为追加内容,若无则是覆盖内容)
FileWriter fw = new FileWriter(myFile,true);
fw.write(content);
fw.close();

// 第三种:BufferedWriter
BufferedWriter bw = new BufferedWriter(new FileWriter(myFile,true));
bw.write(content);  
bw.flush();  
bw.close(); 

// 第四种:打印流PrintStream和PrintWriter
// 字节打印流:PrintStream
// 字符打印流:PrintWriter

PrintWriter pw = new PrintWriter(new FileWriter(myFile,true));   
pw.println(content);      // 换行
pw.print(content);        // 不换行
pw.close();

// 常用BufferedWriter和PrintWriter

读取文件

FileInputStream

// 第一种:以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 
InputStream in = new FileInputStream(myFile);

// 一次读一个字节
int tempbyte;  
while ((tempbyte = in.read()) != -1) {  
    System.out.write(tempbyte);  
}  
in.close();

// 一次读多个字节
int byteread = 0;
byte[] tempbytes = new byte[100];
ReadFromFile.showAvailableBytes(in);
while ((byteread = in.read(tempbytes)) != -1) {  
    System.out.write(tempbytes, 0, byteread);  
}  

// System.out.write()方法是字符流,System.out.println()方法是字节流

InputStreamReader

// 第二种:以字符为单位读取文件,常用于读文本,数字等类型的文件 
Reader reader = new InputStreamReader(new FileInputStream(myFile)); 

// 一次读一个字节
int tempchar;  
while ((tempchar = reader.read()) != -1) {  
    // 对于windows下,\r\n这两个字符在一起时,表示一个换行。  
    // 但如果这两个字符分开显示时,会换两次行。  
    // 因此,屏蔽掉\r,或者屏蔽\n。否则,将会多出很多空行。  
    if (((char) tempchar) != '\r') {  
        System.out.print((char) tempchar);  
    }  
}  
reader.close();

// 一次读多个字节
char[] tempchars = new char[30];  
int charread = 0;  
// 读入多个字符到字符数组中,charread为一次读取字符数  
while ((charread = reader.read(tempchars)) != -1) {  
    // 同样屏蔽掉\r不显示  
    if ((charread == tempchars.length) && (tempchars[tempchars.length - 1] != '\r')) {  
        System.out.print(tempchars);  
    } else {  
        for (int i = 0; i < charread; i++) {  
            if (tempchars[i] == &#39;\r&#39;) {  
                continue;  
            } else {  
                System.out.print(tempchars[i]);  
            }  
        }  
    }  
}

BufferedReader

// 第三种:以行为单位读取文件,常用于读面向行的格式化文件 
BufferedReader reader = new BufferedReader(new FileReader(myFile));
String tempString = null;  
int line = 1;  
// 一次读入一行,直到读入null为文件结束  
while ((tempString = reader.readLine()) != null) {  
    // 显示行号  
    System.out.println("line " + line + ": " + tempString);  
    line++;  
}  
reader.close();  

// 常用BufferedReader

遍历文件(以删除一个文件夹下所有文件为例)

File[] files=myFile.listFiles();   
for(int i=0;i<files.length;i++){   
    if(files[i].isDirectory()){   
        files[i].delete();   
    }   
}

文件函数:

//判断文件是否存在  
myFile.exists()

//读取文件名称  
myFile.getName()

//读取文件路径(相对路径)  
myFile.getPath()

//读取文件绝对路径  
myFile.getAbsolutePath()

//读取文件的父级路径  
new File(myFile.getAbsolutePath()).getParent()

//读取文件的大小  
myFile.length()

//判断文件是否被隐藏  
myFile.isHidden()

//判断文件是否可读  
myFile.canRead()

//判断文件是否可写  
myFile.canWrite()

//判断文件是否为文件夹  
myFile.isDirectory()

相关推荐:java入门教程

以上是java中常用的文件操作有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:csdn。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具