Java读写文件,字符输入流FileReader 和 字符输出流FileWriter
一个流被定义为一个数据序列。输入流用于从源文件读取数据,输出流用于向目标写数据。

字符输入流FileReader三种读文件方式
package com.shuzf.fileio; import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader; /**
* 字符输入流的操作
*/
public class FileReaderDemo { // 读取文件的方式一:逐个字符来读取文本文件
public void getChar1(Reader reader) throws IOException {
//定义保存数据的变量
int data;
while ((data = reader.read()) != -1) {
System.out.print((char) data);
}
} // 读取文件方式二:使用数组来读取文本文件
public void getChar2(Reader reader) throws IOException {
//定义保存读取数据的字符数组
char[] buf = new char[1024];
//定义表示一次读取到字符数组中的数据长度
int data;
while ((data = reader.read(buf)) != -1) {
System.out.println(new String(buf, 0, data));
}
} // 方法三:用缓冲区读取文本文件
public void getChar3(Reader reader) throws IOException {
//定义缓冲流
BufferedReader buf = new BufferedReader(reader);
String str;
while ((str = buf.readLine()) != null) {
System.out.println(str);
} } public static void main(String[] args) { FileReaderDemo demo = new FileReaderDemo();
FileReader reader = null;
try {
reader = new FileReader("src/files/test1.txt");
demo.getChar1(reader);
//demo.getChar2(reader);
//demo.getChar3(reader); } catch (FileNotFoundException e) {
System.out.println("异常:" + e.toString());
} catch (IOException e) {
System.out.println("异常:" + e.toString());
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
System.out.println("异常:" + e.toString());
}
}
} } }
方法二也可以采用foreach循环:
reader.read(buf);
for (char c : buf) {
System.out.println(c);
}
字符输出流FileWriter写文件
如果该流在打开文件进行输出前,目标文件不存在,那么该流会创建该文件。
package com.shuzf.fileio; import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer; /**
* 字符输出流
*/
public class FileWriterDemo { public static void main(String[] args) {
Writer writer = null;
try {
writer = new FileWriter("src/files/test3.txt");
writer.write("hello world\n");
writer.write(new char[] { '大', '家', '好', '\n' });
writer.write(97);
writer.append('a').append('b').append('c').write("sdfdsf"); } catch (IOException e) {
e.printStackTrace();
} finally {
if (writer != null) {
try {
writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
} }
Java读写文件,字符输入流FileReader 和 字符输出流FileWriter的更多相关文章
- Java读写文件方法总结
Java读写文件方法总结 Java的读写文件方法在工作中相信有很多的用处的,本人在之前包括现在都在使用Java的读写文件方法来处理数据方面的输入输出,确实很方便.奈何我的记性实在是叫人着急,很多时候既 ...
- java读写文件大全
java读写文件大全 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类,这两个类都是抽象类,Writer中 write(char[] ch,int o ...
- Java读写文件的几种方式
自工作以后好久没有整理Java的基础知识了.趁有时间,整理一下Java文件操作的几种方式.无论哪种编程语言,文件读写操作时避免不了的一件事情,Java也不例外.Java读写文件一般是通过字节.字符和行 ...
- 【java】java 读写文件
场景:JDK8 将上传的文件,保存到服务器 Java读写文件操作: MultipartFile file InputStream inputStream = file.getInputStream( ...
- Java 读写文件大全
原文:http://www.open-open.com/code/view/1423281836529 java中多种方式读文件 一.多种方式读文件内容. 1.按字节读取文件内容 2.按字符读取文件内 ...
- 【转】Java读写文件大全
使用Java操作文本文件的方法详解 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类,这两个类都是抽象类,Writer中 write(ch ...
- 转:Java读写文件各种方法及性能比较
干Java这么久,一直在做WEB相关的项目,一些基础类差不多都已经忘记.经常想得捡起,但总是因为一些原因,不能如愿. 其实不是没有时间,只是有些时候疲于总结,今得空,下定决心将丢掉的都给捡起来. 文件 ...
- [19/03/31-星期日] IO技术_四大抽象类_字符流( 字符输入流 Reader、 字符输出流 Writer )(含字符缓冲类)
一.概念 Reader Reader用于读取的字符流抽象类,数据单位为字符. int read(): 读取一个字符的数据,并将字符的值作为int类型返回(0-65535之间的一个值,即Unicode ...
- Java读写文件常用方法
一.字符流:读写纯文本(txt,csv等), 1 字符流写文件主要用:FileWriter,BufferedWriter,PrintWriter 1.1 测试 FileWriter 写入 privat ...
随机推荐
- python地理处理包——geopy使用之地理编码与反地理编码
由于专业需要,经常接触一些地理处理的工具包,文档都是英文的,自己看的同时将其翻译一下,一方面自己学习的同时有个记录,要是能同时给一起的学习的童鞋们一些帮助,想想也是极好的.以下的文档内容主要翻译自官方 ...
- Android为TV端助力 关于android的一些基础知识
怕自己以后忘了,所以在这里先写写! equal和==的区别是,一个用于判断字符串,一个用于判断int是否相等 equal比较的是对象,==比较的是值
- cordov vue项目中调用手机原生api
cordova不仅可以把vue项目打包成app,还可以让vue借助cordova调用手机原生的api 比如拍照 比如图片上传 比如定位 比如扫描二维码 比如支付等等 Vue Cordova教程-Vue ...
- CsQuery中文编码乱码问题
一.问题描述 InnerHTML 中文显示为Модель 二.解决方法 在初始化CQ对象前,先设置执行以下语句: CsQuery.Config.HtmlEncoder = CsQuery.HtmlEn ...
- 关于商米D1S,USB默认权限在关机后丢失的FAQ
1.机器型号:商米D1S 2.机器系统版本:7.1.2 3.情况描述:双屏的机器不管是银盒子收银还是银盒子智能收银,勾选默认后重启机器还是会提示, 4.解决方案:商米厂商大约会在1月份进行系统更新,到 ...
- ExtJS中layout的12种布局风格
总览 extjs的容器组件都可以设置它的显示风格,它的有效值有 1. absolute,2. accordion, 3. anchor, 4. border, 5. card, 6. column, ...
- mssql sqlserver 判断字符串大小写的方法分享
摘要:下文讲述使用sql脚本的方法判断字符串为大小写的方法分享,如下所示 实验环境:sqlserver 2008 R2 实现思路: 将字符串转换为大写或小写然后转换为二进制编码, 然后和源字符串做对比 ...
- SQL Server DATA文件夹下audittrace20180124152845_52.trc类文件异常增多
同事告知某现场SQL Server2008R2数据库的DATA文件夹下audittrace开头的trc文件不断增多,占用较大空间,因此需要关停,尝试解决步骤如下: 1.查看是否有后台开启的trace ...
- Linux CFS调度器之队列操作--Linux进程的管理与调度(二十七)
1. CFS进程入队和出队 完全公平调度器CFS中有两个函数可用来增删队列的成员:enqueue_task_fair和dequeue_task_fair分别用来向CFS就绪队列中添加或者删除进程 2 ...
- Python: 遍历
======================遍历列表========================# 直接遍历list: for elem in list: pass # 通过索引获取 for i ...