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

字符输入流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的更多相关文章

  1. Java读写文件方法总结

    Java读写文件方法总结 Java的读写文件方法在工作中相信有很多的用处的,本人在之前包括现在都在使用Java的读写文件方法来处理数据方面的输入输出,确实很方便.奈何我的记性实在是叫人着急,很多时候既 ...

  2. java读写文件大全

     java读写文件大全 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类,这两个类都是抽象类,Writer中 write(char[] ch,int o ...

  3. Java读写文件的几种方式

    自工作以后好久没有整理Java的基础知识了.趁有时间,整理一下Java文件操作的几种方式.无论哪种编程语言,文件读写操作时避免不了的一件事情,Java也不例外.Java读写文件一般是通过字节.字符和行 ...

  4. 【java】java 读写文件

    场景:JDK8  将上传的文件,保存到服务器 Java读写文件操作: MultipartFile file InputStream inputStream = file.getInputStream( ...

  5. Java 读写文件大全

    原文:http://www.open-open.com/code/view/1423281836529 java中多种方式读文件 一.多种方式读文件内容. 1.按字节读取文件内容 2.按字符读取文件内 ...

  6. 【转】Java读写文件大全

    使用Java操作文本文件的方法详解        最初java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类,这两个类都是抽象类,Writer中 write(ch ...

  7. 转:Java读写文件各种方法及性能比较

    干Java这么久,一直在做WEB相关的项目,一些基础类差不多都已经忘记.经常想得捡起,但总是因为一些原因,不能如愿. 其实不是没有时间,只是有些时候疲于总结,今得空,下定决心将丢掉的都给捡起来. 文件 ...

  8. [19/03/31-星期日] IO技术_四大抽象类_字符流( 字符输入流 Reader、 字符输出流 Writer )(含字符缓冲类)

     一.概念 Reader Reader用于读取的字符流抽象类,数据单位为字符. int read(): 读取一个字符的数据,并将字符的值作为int类型返回(0-65535之间的一个值,即Unicode ...

  9. Java读写文件常用方法

    一.字符流:读写纯文本(txt,csv等), 1 字符流写文件主要用:FileWriter,BufferedWriter,PrintWriter 1.1 测试 FileWriter 写入 privat ...

随机推荐

  1. 在php中使用对称加密DES3,开发银行卡绑定,实名验证……

    对称加密:对称加密是一种数据加密算法,对一组数据的加密和解密都使用一样的密钥(key),可以有效保护金融数据,常见的对称加密有DES,3DES,AES.RC2.RC4.RC5. DES3: 对DES算 ...

  2. mysql数据库的备份和恢复

    Mysql数据库的备份和恢复 1.备份单个数据库 mysql数据库自带了一个很好用的备份命令,就是mysqldump,它的基本使用如下: 语法:mysqldump –u <用户名> -p ...

  3. 使用Nginx实现服务器反向代理和负载均衡

    前言 同事总问我Nginx做反向代理负载均衡的问题,因此特意留下一篇扫盲贴! 直接部署服务器的风险 假设,我开发了一个网站,然后买了一台Web服务器和一台数据库服务器,直接部署到公共网络上.如下图,网 ...

  4. 更新 Anaconda 库文件

    查看库 Anaconda Navigator中 启动Anaconda Prompt(或Anaconda Navigator中Environment->(base)root->Open te ...

  5. [Objective-C] Copy 和 MutableCopy

    看了几篇文章,因为文章很新手向,所以内容很繁琐.故整理一下重点,写了测试程序去了解几个知识点,不讨论基本概念.新博客wossoneri.com传送门 非集合类对象的copy与mutableCopy / ...

  6. 章节四、1-if条件语句

    package introduction5; public class ConditionalStatement { public static void main(String[] args) { ...

  7. session,cookie,sessionStorage,localStorage的区别

    浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟服务端进行数据交互. 一.cookie和session cookie和session都是用来跟踪浏览器 ...

  8. recovery 界面汉化过程详解

    一. 主要是针对recovery汉化,主要汉化对象是界面显示为中文. 二. 基于中文的汉化,有两种方式,一种是基于GB2312的编码格式汉化,另外一种是基于unicode编码格式汉化.下面介绍unic ...

  9. 重启Zabbix Server

    重启zabbix server:systemctl restart zabbix-server #启动服务 systemctl start zabbix-server systemctl start ...

  10. win10同时安装 office2016和visio2016

    一.下载镜像文件 因为office 2016和 visio2016 镜像文件是一样的,只是名称不一样,所以只需要下载一个即可. 二.下载Office 2016 Deployment Tool工具 到微 ...