Java中读写文件的关键在于节点流和处理流的的选取上,而节点流和处理流又分为面向字节、面向字符两种处理模式,因此,需要根据实际的情况选择合适的处理模式,一般而言,往往尽量尝试使用面向字符的处理模式,如果程序代码无法编译成功,再尝试使用面向字节的的处理模式。

1.节点流和处理流的分类(包括了面向字节和面向字符)

2.读文件

(1)创建文件路径对象

// 通过File创建文件路径对象
File filePath= new File("src/com/test/io/test.txt");

(2)创建节点流对象(面向字符的处理模式)

// 创建节点流对象(面向字符的处理模式)
FileReader fr = new FileReader(filePath);

(3)创建处理流包装节点流对象(面向字符的处理模式):

// 创建处理流包装节点流对象(面向字符的处理模式)
BufferedReader br = new BufferedReader(fr);

(4)读取文件内容(ready():告诉这个流是否准备好被读取。返回值类型:boolean)

// 读取文件内容
while(br.ready()){
System.out.println(br.readLine());
}

(5)关闭处理流、节点流等

// 关闭处理流、节点流等
br.close();
fr.close();

(6)测试

新建文件:test.txt

代码文件:demo.java

package com.test.io;

import java.io.*;

public class demo {
public static void main(String[] args) throws IOException {
// 1.通过File创建文件路径对象
File filePath= new File("src/com/test/io/test.txt"); try {
// 2.创建节点流对象(面向字符的处理模式)
FileReader fr = new FileReader(filePath); // 3.创建处理流包装节点流对象(面向字符的处理模式)
BufferedReader br = new BufferedReader(fr); // 4.读取文件内容
while(br.ready()){
System.out.println(br.readLine());
} // 5.关闭处理流、节点流等
br.close();
fr.close(); } catch (FileNotFoundException e) {
e.printStackTrace();
} }
}

运行截图:

3.写文件

(1)创建文件路径对象

// 通过File创建文件路径对象
File filePath = new File("src/com/test/io/test2.txt");

(2)创建节点流对象(面向字符的处理模式)

// 创建节点流对象(面向字符的处理模式)
FileWriter fw = new FileWriter(filePath);

(3)创建处理流包装节点流对象(面向字符的处理模式):

// 创建处理流包装节点流对象(面向字符的处理模式)
BufferedWriter bw = new BufferedWriter(fw);

(4)写入数据

//写入数据
bw.write("ABCDED\r\n");
bw.write("一二三四");

(5)关闭处理流、节点流等

// 关闭处理流、节点流等
bw.close();
fw.close();

(6)测试:

代码文件:demo.java

package com.test.io;

import java.io.*;

public class demo {
public static void main(String[] args) {
// 1.通过File创建文件路径对象
File filePath = new File("src/com/test/io/test2.txt"); try {
// 2.创建节点流对象(面向字符的处理模式)
FileWriter fw = new FileWriter(filePath); // 3.创建处理流包装节点流对象(面向字符的处理模式)
BufferedWriter bw = new BufferedWriter(fw); // 4.写入数据
bw.write("ABCDED\r\n");
bw.write("一二三四"); // 5.关闭处理流、节点流等
bw.close();
fw.close(); } catch (IOException e) {
e.printStackTrace();
} }
}

运行截图:

Java-IO读写文件简单操作的更多相关文章

  1. Java-IO读写文件简单操作2

    承接Java-IO读写文件简单操作,这里再次写个小demo巩固一下知识点. 代码文件:demo.java package com.test.demo; import java.io.*; public ...

  2. java io读写文件

    java io读写文件相关阅读:http://www.cnblogs.com/wing011203/archive/2013/05/03/3056535.html public class DemoI ...

  3. java(IO)读写文件乱码转换UTF-8问题

    java(IO)读写文件乱码转换UTF-8问题 读取文件 String Content = ""; // 文件很长的话建议使用StringBuffer try { FileInpu ...

  4. java IO流文件的读写具体实例(转载)

    引言: 关于java IO流的操作是非常常见的,基本上每个项目都会用到,每次遇到都是去网上找一找就行了,屡试不爽.上次突然一个同事问了我java文件的读取,我一下子就懵了第一反应就是去网上找,虽然也能 ...

  5. JAVA多线程读写文件范例

    在写之前先声明,本文是基于之前在博客园网站上检索到的一份JAVA多线程读写文件的示例,我在写自己的程序时是在那位作者写的基础上做了改良,但已不记得原文的地址.如果有知情者,烦请帖出地址,我在此文上加入 ...

  6. java StringBuffer读写文件

    java StringBuffer读写文件 StringBuffer的优势 较String:String每更新一次就会new一个新的对象出来,更新次数上去之后,内存开销太大.而StringBuffer ...

  7. Java IO读写中文各种乱码问题 【转】

    Java IO读写中文各种乱码问题 转自:http://blog.sina.com.cn/s/blog_484ab56f0101muzh.html java.io.*读写中文各种乱码,很费劲.不完全解 ...

  8. Qt的Model/View Framework解析(数据是从真正的“肉(raw)”里取得,Model提供肉,所以读写文件、操作数据库、网络通讯等一系列与数据打交道的工作就在model中做了)

    最近在看Qt的Model/View Framework,在网上搜了搜,好像中文的除了几篇翻译没有什么有价值的文章.E文的除了Qt的官方介绍,其它文章也很少.看到一个老外在blog中写道Model/Vi ...

  9. Perl读写Excel简单操作

    Perl读写Excel简单操作 使用模块 Spreadsheet::ParseExcel Spreadsheet::WriteExcel 读Excel #!/usr/bin/perl -w use s ...

随机推荐

  1. R: 常用操作:

    ################################################### #清除所有变量: rm(list=ls()) #查看变量类型 getwd() setwd() i ...

  2. Luogu 3267 [JLOI2016/SHOI2016]侦察守卫

    以后要记得复习鸭 BZOJ 4557 大佬的博客 状态十分好想,设$f_{x, i}$表示以覆盖完$x$为根的子树后还能向上覆盖$i$层的最小代价,$g_{x, i}$表示以$x$为根的子树下深度为$ ...

  3. vue 之 介绍及简单使用

    浏览目录 vue的介绍 vue的使用 vue的介绍 简介 vue官网说:Vue.js(读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式框架.与其他重量级框架不同的是,Vue 采用自底 ...

  4. maven tomcat:run指定tomcat7:

    配置好下面的内容后,执行 run as -> tomcat7:run 或者tomcat6:run可以将maven的web应用在tomcat6/7里面运行 ,eclipse Indigo 版本默认 ...

  5. c 数组作为返回值注意

    static char* Test() { char buf[] ="aa"; printf("%s\n",buf); return buf; } int ma ...

  6. Kinect插件使用

    Kinect Scripts文件夹下所有managers(管理器)的用途: 这些在KinectScripts文件夹下的管理器都是组件,你可以根据你想实现的功能在项目中使用它. KinectManage ...

  7. 2019.2.26考试T2 矩阵快速幂加速DP

    \(\color{#0066ff}{题解 }\) 可以发现, 数据范围中的n特别小,容易想到状压 可以想到类似于状压DP的思路,按列进行转移 那么应该有3维,\(f[i][j][k]\)代表到第i列, ...

  8. NOIP后省选集训前文化课划水记

    划水划了一个多月,文化课没啥长进还他妈累死了...--ghj1222 11.11(NOIP Day2) 师傅开车开得很快,晚上8:00多就到了二狱 晚上听毒瘤班主任swh讲了半节语文,我:黑人问号.j ...

  9. linux 内核的 switch_to原理

    switch_to:这是一个宏,有三个参数prev,next,last 局部变量prev,next:指向进程描述符的内存地址 首先明确的是:last和prev是同一个,用last只是为了理解方便,完全 ...

  10. NYOJ1238 最小换乘 (dijkstra)

    最少换乘 时间限制:2000 ms  |  内存限制:65535 KB 难度:3   描述 欧洲某城是一个著名的旅游胜地,每年都有成千上万的人前来观光旅行.Dr. Kong决定利用暑假好好游览一番.. ...