"Java IO流 reader和writer的方法使用" 在Java中,IO(Input/Output)流是处理数据输入和输出的重要工具。本篇将详细讲解Java中的`Reader`和`Writer`类及其常用方法。 `Reader`和`Writer`是Java IO流中的字符流,它们分别用于读取和写入字符数据。`Reader`是所有字符输入流的抽象基类,而`Writer`是所有字符输出流的抽象基类。它们提供了许多方法来处理字符数据,例如读取单个字符、读取整行、写入字符等。 在给定的代码示例中,我们首先看到如何使用`FileReader`和`BufferedReader`进行文件读取: ```java File file = new File("f:\\genius.txt"); if (!file.exists()) { System.out.println("文件不存在"); } try { FileReader fr = new FileReader(file); BufferedReader br = new BufferedReader(fr); // 逐行读取文本文件 String str; while ((str = br.readLine()) != null) { System.out.println(str); } // 关闭流 br.close(); fr.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } ``` 在这个例子中,我们首先创建一个`File`对象,然后检查文件是否存在。如果存在,我们创建一个`FileReader`实例来打开文件,接着创建一个`BufferedReader`,它对`FileReader`进行包装,提供更高效的数据读取。`BufferedReader`的`readLine()`方法用于按行读取文本,直到文件结束。最后,我们需要关闭所有的流,以释放系统资源。 接着,代码展示了如何使用`FileWriter`和`BufferedWriter`进行文件写入: ```java File file = new File("f:\\genius.txt"); // 转义斜杠 \ 为反斜杠 \\ if (!file.exists()) { // 如果文件不存在,尝试创建 try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } try { FileWriter fw = new FileWriter(file); BufferedWriter bw = new BufferedWriter(fw); // 写入数据 String[] str = {"Java", "C"}; for (String s : str) { bw.write(s); bw.newLine(); // 添加换行符 } // 关闭流 bw.close(); fw.close(); } catch (IOException e) { e.printStackTrace(); } ``` 这里,我们同样创建一个`File`对象,如果文件不存在则创建新的文件。然后使用`FileWriter`实例打开文件,再用`BufferedWriter`包装以提高效率。`BufferedWriter`的`write()`方法用于写入单个字符串,`newLine()`方法用于添加一行。最后,记得关闭流。 `Reader`和`Writer`的其他常用方法包括: - `read()`: 读取单个字符。 - `skip(n)`: 跳过指定数量的字符。 - `ready()`: 检查是否可以立即读取一个字符,而不阻塞。 - `mark(int readlimit)`: 设置标记,允许稍后返回到当前位置。 - `reset()`: 回到之前设置的标记位置。 - `close()`: 关闭流并释放与之关联的任何系统资源。 `Writer`类中还有: - `append(char c)`: 追加单个字符。 - `append(CharSequence csq)`: 追加一个字符序列。 - `flush()`: 刷新流,确保所有已缓冲的输出都被写出。 这些方法是Java IO流处理的基础,通过它们可以实现对文件、网络等不同数据源的字符数据操作。理解并熟练运用这些方法对于Java开发来说至关重要。
//更多文章请访问 小贝博客 www.xiaobei668.com
public static void main(String[] args) {
//****************读入文件*******************
// File file = new File("f:\\genius.txt");
// if(!file.exists()){
// System.out.println("找不到文件");
// }
// try {
// FileReader fr = new FileReader(file);
// BufferedReader br = new BufferedReader(fr);
// //定义一个变量下面把txt文件里面的内容循环输出
// String str;
// while((str = br.readLine())!=null){
// System.out.println(str);
// }
// //关闭流
// br.close();
// fr.close();
// } catch (FileNotFoundException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
下载后可阅读完整内容,剩余3页未读,立即下载
- 粉丝: 1
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- WebLogic集群配置与管理实战指南
- AIX5.3上安装Weblogic 9.2详细步骤
- 面向对象编程模拟试题详解与解析
- Flex+FMS2.0中文教程:开发流媒体应用的实践指南
- PID调节深入解析:从入门到精通
- 数字水印技术:保护版权的新防线
- 8位数码管显示24小时制数字电子钟程序设计
- Mhdd免费版详细使用教程:硬盘检测与坏道屏蔽
- 操作系统期末复习指南:进程、线程与系统调用详解
- Cognos8性能优化指南:软件参数与报表设计调优
- Cognos8开发入门:从Transformer到ReportStudio
- Cisco 6509交换机配置全面指南
- C#入门:XML基础教程与实例解析
- Matlab振动分析详解:从单自由度到6自由度模型
- Eclipse JDT中的ASTParser详解与核心类介绍
- Java程序员必备资源网站大全