<1>读写文件的几种方式

Java中,读写文件是一项基本操作。文件输入输出是Java程序在与外部环境通信过程中至关重要的一种方式。本文将介绍Java读写文件的几种方式,包括字符流、字节流、缓冲流等,并给出相应的示例代码,来帮助你更好地了解和应用这些方法。

一、字符流

字符流是以字符为单位操作的流。在Java中,字符流主要有FileReader和FileWriter两个类。

1. FileReader

FileReader类用于读取字符文件。其构造方法如下:

FileReader(String fileName)

FileReader(File file)

接下来是一个FileReader的例子:

```

try{

FileReader fr=new FileReader("test.txt");

int ch;

while((ch=fr.read())!=-1){

System.out.print((char)ch);

}

}catch(IOException e){

e.printStackTrace();

}

```

FileReader读取文件的步骤:

- 创建一个FileReader对象。

- 使用read()方法读取文件。

- 关闭FileReader对象。

2. FileWriter

FileWriter类用于写入字符文件。其构造方法如下:

FileWriter(String fileName)

FileWriter(File file)

接下来是一个FileWriter的例子:

```

try{

FileWriter fw=new FileWriter("test.txt");

fw.write("Hello FileWriter!");

fw.close();

}catch(IOException e){

e.printStackTrace();

}

```

FileWriter写入文件的步骤:

- 创建一个FileWriter对象。

- 使用write()方法写入文件。

- 关闭FileWriter对象。

二、字节流

字节流是以字节为单位操作的流,常用于读写图片、声音、视频等文件。在Java中,字节流主要有FileInputStream和FileOutputStream两个类。

1. FileInputStream

FileInputStream类用于读取字节文件。其构造方法如下:

FileInputStream(String fileName)

FileInputStream(File file)

接下来是一个FileInputStream的例子:

```

try{

FileInputStream fis=new FileInputStream("test.txt");

int len;

byte[] bytes=new byte[1024];

while((len=fis.read(bytes))!=-1){

System.out.print(new String(bytes,0,len));

}

fis.close();

}catch(IOException e){

e.printStackTrace();

}

```

FileInputStream读取文件的步骤:

- 创建一个FileInputStream对象。

- 使用read()方法读取文件。

- 关闭FileInputStream对象。

2. FileOutputStream

FileOutputStream类用于写入字节文件。其构造方法如下:

FileOutputStream(String fileName)

FileOutputStream(File file)

接下来是一个FileOutputStream的例子:

```

try{

FileOutputStream fos=new FileOutputStream("test.txt",true);

fos.write("Hello FileOutputStream!".getBytes());

fos.close();

}catch(IOException e){

e.printStackTrace();

}

```

FileOutputStream写入文件的步骤:

- 创建一个FileOutputStream对象。

- 使用write()方法写入文件。

- 关闭FileOutputStream对象。

三、缓冲流

缓冲流是在字节流或字符流基础上增加了高效缓冲区的流,能够提高程序读写文件的效率。在Java中,缓冲流主要有BufferedInputStream、BufferedOutputStream和BufferedReader、BufferedWriter两个类。

1. BufferedInputStream和BufferedOutputStream

BufferedInputStream类和BufferedOutputStream类是对FileInputStream和FileOutputStream类的封装,提供了缓存能力。其构造方法如下:

BufferedInputStream(InputStream in)

BufferedOutputStream(OutputStream out)

接下来是一个BufferedInputStream和BufferedOutputStream的例子:

```

try{

FileInputStream fis = new FileInputStream("test.txt");

BufferedInputStream bis=new BufferedInputStream(fis);

FileOutputStream fos = new FileOutputStream("testcopy.txt");

BufferedOutputStream bos=new BufferedOutputStream(fos);

byte[] bytes=new byte[1024];

int len;

while((len=bis.read(bytes))!=-1){

bos.write(bytes,0,len);

}

bis.close();

bos.flush();

bos.close();

}catch(IOException e){

e.printStackTrace();

}

```

BufferedInputStream和BufferedOutputStream的读写文件步骤与FileInputStream和FileOutputStream基本相同,只是多了一个缓冲区。

2. BufferedReader和BufferedWriter

BufferedReader类和BufferedWriter类是对FileReader和FileWriter类的封装,提供了缓存能力。其构造方法如下:

BufferedReader(Reader in)

BufferedWriter(Writer out)

接下来是一个BufferedReader和BufferedWriter的例子:

```

try{

FileReader fr=new FileReader("test.txt");

BufferedReader br=new BufferedReader(fr);

FileWriter fw=new FileWriter("testcopy.txt");

BufferedWriter bw=new BufferedWriter(fw);

String str;

while((str=br.readLine())!=null){

bw.write(str);

bw.newLine();

}

br.close();

bw.flush();

bw.close();

}catch(IOException e){

e.printStackTrace();

}

```

BufferedReader和BufferedWriter的读写文件步骤与FileReader和FileWriter基本相同,只是多了一个缓冲区。

总结

以上介绍了Java读写文件的几种方式,包括字符流、字节流、缓冲流等。不同的流有其各自的优缺点,大家可以根据具体需求来选择适合自己的方式。

参考文献:

[1] https://www.imooc.com/article/48752

[2] https://www.runoob.com/java/java-file-input-output.html

壹涵网络我们是一家专注于网站建设、企业营销、网站关键词排名、AI内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。

我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!

点赞(115) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部