Java文件读写操作详解: FileInputStream与FileOutputStream实例
192 浏览量
更新于2024-09-01
收藏 192KB PDF 举报
"Java文件的简单读写操作方法实例分析"
在Java编程中,对文件进行读写操作是常见的任务,这通常涉及到I/O流(Input/Output Stream)的使用。本文将详细介绍如何使用Java进行文件的读写,并提供相关的实例。
首先,Java中的`FileInputStream`类用于从文件中读取数据。你可以通过以下两种方式创建一个`FileInputStream`对象:
1. 使用字符串类型的文件路径:
```java
String filename = "D:\\java运行环境\\ZHL\\src\\java2018_8_5五子棋\\GobangMain.java";
InputStream in = new FileInputStream(filename);
```
2. 或者使用`File`对象:
```java
File f = new File("D:\\java运行环境\\ZHL\\src\\java2018_8_5五子棋\\GobangMain.java");
InputStream in = new FileInputStream(f);
```
创建对象后,可以调用其方法进行读取操作,如`close()`用于关闭流并释放资源,`read(int)`读取单个字节,`read(byte[])`读取多个字节,以及`available()`获取未读取的字节数。
接着,`FileOutputStream`类用于向文件中写入数据。如果目标文件不存在,`FileOutputStream`会自动创建。同样有两种创建方式:
1. 使用字符串路径:
```java
OutputStream out = new FileOutputStream("D:\\android\\file_operation\\test.txt");
```
2. 使用`File`对象:
```java
File file = new File("D:\\android\\file_operation\\test.txt");
OutputStream out = new FileOutputStream(file);
```
对于写入操作,你可以使用`write(int)`方法写入单个字节,`write(byte[])`方法写入字节数组。完成写入后,别忘了调用`close()`方法关闭流。
进行文件读写时,需要注意以下几点:
1. 异常处理:由于文件操作可能抛出异常,如`FileNotFoundException`和`IOException`,所以应该使用`try-catch`语句块来捕获并处理这些异常。
2. 关闭流:操作完成后,记得调用`close()`方法关闭流,避免资源泄漏。
3. 缓冲区使用:为了提高效率,通常会使用`BufferedInputStream`和`BufferedOutputStream`,它们提供缓冲区以减少磁盘I/O次数。
4. 文件追加:如果希望在现有文件末尾追加内容,可以使用`FileOutputStream`的构造函数,传入`true`作为第二个参数,如`new FileOutputStream(file, true)`。
了解以上基本操作后,你可以根据需求组合使用这些方法,实现复杂的文件读写功能。例如,使用循环读取文件的每个字节,或者写入字符串时先将其转换为字节数组。在实际项目中,还可能涉及字符编码、文件复制、文件移动等更复杂的操作,但基本思路都基于Java的I/O流体系。
2007-07-17 上传
2010-06-21 上传
2012-06-07 上传
2016-08-03 上传
125 浏览量
2009-07-24 上传
2011-11-12 上传
2011-01-09 上传
2010-05-08 上传
weixin_38514526
- 粉丝: 7
- 资源: 930
最新资源
- jquery-DOMwindow:最初来自http的jQuery DOMwindow插件的更新版本
- NLP_Basics:自然语言处理基本概念和高级概念
- go-clock
- [论坛社区]Google Sitemap生成器 v3.0 for phpwind 6.3.2_sitemap.rar
- 已加星标
- CentralLimit,modbusc#源码,c#
- AndroidStudioDemo
- Natural-Language-Processing-CS60075-:该存储库包含2020年秋季获得的NLP(CS60075)的已解决任务
- FireDoom::fire:动画DOOM feita em Java脚本
- Whowatch Hide Item Animation-crx插件
- dataVis
- Qt基于QGraphicsView绘图架构实现不同图形(多边形、圆形、矩形)的动态绘制(所见即所得)
- AnalyseFileData.zip
- NailPHP-master.zip
- ToolConvertEnglish
- SPINNER:使用 3 个 uicontrol 创建一个简单的微调控件。-matlab开发