Home Java Javagetting Started What are the commonly used file operations in java?

What are the commonly used file operations in java?

Nov 27, 2020 pm 03:30 PM
java document

What are the commonly used file operations in 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入门教程

The above is the detailed content of What are the commonly used file operations in java?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What is a deadlock in Java and how can you prevent it? What is a deadlock in Java and how can you prevent it? Aug 23, 2025 pm 12:55 PM

AdeadlockinJavaoccurswhentwoormorethreadsareblockedforever,eachwaitingforaresourceheldbytheother,typicallyduetocircularwaitcausedbyinconsistentlockordering;thiscanbepreventedbybreakingoneofthefournecessaryconditions—mutualexclusion,holdandwait,nopree

How to use Optional in Java? How to use Optional in Java? Aug 22, 2025 am 10:27 AM

UseOptional.empty(),Optional.of(),andOptional.ofNullable()tocreateOptionalinstancesdependingonwhetherthevalueisabsent,non-null,orpossiblynull.2.CheckforvaluessafelyusingisPresent()orpreferablyifPresent()toavoiddirectnullchecks.3.Providedefaultswithor

Java Persistence with Spring Data JPA and Hibernate Java Persistence with Spring Data JPA and Hibernate Aug 22, 2025 am 07:52 AM

The core of SpringDataJPA and Hibernate working together is: 1. JPA is the specification and Hibernate is the implementation, SpringDataJPA encapsulation simplifies DAO development; 2. Entity classes map database structures through @Entity, @Id, @Column, etc.; 3. Repository interface inherits JpaRepository to automatically implement CRUD and named query methods; 4. Complex queries use @Query annotation to support JPQL or native SQL; 5. In SpringBoot, integration is completed by adding starter dependencies and configuring data sources and JPA attributes; 6. Transactions are made by @Transactiona

Java Cryptography Architecture (JCA) for Secure Coding Java Cryptography Architecture (JCA) for Secure Coding Aug 23, 2025 pm 01:20 PM

Understand JCA core components such as MessageDigest, Cipher, KeyGenerator, SecureRandom, Signature, KeyStore, etc., which implement algorithms through the provider mechanism; 2. Use strong algorithms and parameters such as SHA-256/SHA-512, AES (256-bit key, GCM mode), RSA (2048-bit or above) and SecureRandom; 3. Avoid hard-coded keys, use KeyStore to manage keys, and generate keys through securely derived passwords such as PBKDF2; 4. Disable ECB mode, adopt authentication encryption modes such as GCM, use unique random IVs for each encryption, and clear sensitive ones in time

LOL Game Settings Not Saving After Closing [FIXED] LOL Game Settings Not Saving After Closing [FIXED] Aug 24, 2025 am 03:17 AM

IfLeagueofLegendssettingsaren’tsaving,trythesesteps:1.Runthegameasadministrator.2.GrantfullfolderpermissionstotheLeagueofLegendsdirectory.3.Editandensuregame.cfgisn’tread-only.4.Disablecloudsyncforthegamefolder.5.RepairthegameviatheRiotClient.

How to use the Pattern and Matcher classes in Java? How to use the Pattern and Matcher classes in Java? Aug 22, 2025 am 09:57 AM

The Pattern class is used to compile regular expressions, and the Matcher class is used to perform matching operations on strings. The combination of the two can realize text search, matching and replacement; first create a pattern object through Pattern.compile(), and then call its matcher() method to generate a Matcher instance. Then use matches() to judge the full string matching, find() to find subsequences, replaceAll() or replaceFirst() for replacement. If the regular contains a capture group, the nth group content can be obtained through group(n). In actual applications, you should avoid repeated compilation patterns, pay attention to special character escapes, and use the matching pattern flag as needed, and ultimately achieve efficient

Edit bookmarks in chrome Edit bookmarks in chrome Aug 27, 2025 am 12:03 AM

Chrome bookmark editing is simple and practical. Users can enter the bookmark manager through the shortcut keys Ctrl Shift O (Windows) or Cmd Shift O (Mac), or enter through the browser menu; 1. When editing a single bookmark, right-click to select "Edit", modify the title or URL and click "Finish" to save; 2. When organizing bookmarks in batches, you can hold Ctrl (or Cmd) to multiple-choice bookmarks in the bookmark manager, right-click to select "Move to" or "Copy to" the target folder; 3. When exporting and importing bookmarks, click the "Solve" button to select "Export Bookmark" to save as HTML file, and then restore it through the "Import Bookmark" function if necessary.

'Java is not recognized' Error in CMD [3 Simple Steps] 'Java is not recognized' Error in CMD [3 Simple Steps] Aug 23, 2025 am 01:50 AM

IfJavaisnotrecognizedinCMD,ensureJavaisinstalled,settheJAVA_HOMEvariabletotheJDKpath,andaddtheJDK'sbinfoldertothesystemPATH.RestartCMDandrunjava-versiontoconfirm.

See all articles