Java标准库中IO操作,如文件读写详解

原创 痛定思痛。 2024-11-01 11:45 114阅读 0赞

Java标准库中的IO(输入/输出)操作是处理数据流的基础,它允许程序与外部世界进行交互,比如从文件中读取数据或向文件中写入数据。Java的IO操作主要分为两个部分:java.io包和java.nio包(Java New IO,从Java1.4开始引入)。下面我将详细介绍java.io包中的文件读写操作。

1.基本的文件读写####读取文件- FileReader:用于读取字符文件的便捷类。

  • BufferedReader:提供缓冲的字符输入流,可以提高读取效率。

示例代码:

```javaimport java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadFile {
public static void main(String[] args) {
String path = “example.txt”;
try (BufferedReader reader = new BufferedReader(new FileReader(path))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```####写入文件- FileWriter:用于写入字符文件的便捷类。

  • BufferedWriter:提供缓冲的字符输出流,可以提高写入效率。

示例代码:

```javaimport java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class WriteFile {
public static void main(String[] args) {
String path = “example.txt”;
String content = “Hello, World!”;
try (BufferedWriter writer = new BufferedWriter(new FileWriter(path))) {
writer.write(content);
} catch (IOException e) {
e.printStackTrace();
}
}
}
``###2. 使用RandomAccessFile进行随机访问RandomAccessFile`类允许对文件进行随机访问,可以读取或写入文件的任意位置。

示例代码:

```javaimport java.io.RandomAccessFile;
import java.io.IOException;

public class RandomAccessFileExample {
public static void main(String[] args) {
String path = “example.txt”;
try (RandomAccessFile file = new RandomAccessFile(path, “rw”)) {
file.seek(0); //移动到文件开头 file.writeBytes(“Hello, World!”); //写入内容 file.seek(0); //再次移动到文件开头 System.out.println(file.readLine()); //读取内容} catch (IOException e) {
e.printStackTrace();
}
}
}
``###3. 使用FileInputStreamFileOutputStream`进行二进制读写- FileInputStream:用于读取文件的二进制数据。

  • FileOutputStream:用于写入文件的二进制数据。

示例代码:

```javaimport java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class BinaryFileExample {
public static void main(String[] args) {
String inputPath = “input.bin”;
String outputPath = “output.bin”;
try (FileInputStream fis = new FileInputStream(inputPath);
FileOutputStream fos = new FileOutputStream(outputPath)) {
int byteData;
while ((byteData = fis.read()) != -1) {
fos.write(byteData);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
``###4. 使用java.nio包进行更高级的文件操作java.nio包提供了更高级的文件IO操作,包括文件锁定、内存映射文件等特性。这个包中的类通常以ChannelBufferSelector`结尾。

  • Files:提供了一些静态方法来简化文件操作,如复制、移动、检查文件是否存在等。
  • Path:表示文件路径,用于java.nio包中的IO操作。
  • Paths:提供静态方法来创建Path对象。

示例代码:

```javaimport java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.io.IOException;
import java.nio.file.StandardOpenOption;

public class NIOFileExample {
public static void main(String[] args) {
Path path = Paths.get(“example.txt”);
try {
String content = “Hello, NIO!”;
Files.write(path, content.getBytes(), StandardOpenOption.CREATE);
System.out.println(new String(Files.readAllBytes(path)));
} catch (IOException e) {
e.printStackTrace();
}
}
}
```这些是Java标准库中进行文件读写操作的基本方法。根据你的具体需求,你可以选择适合的类和方法来实现文件的读写。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,114人围观)

还没有评论,来说两句吧...

相关阅读