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

字符输入流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. ACL技术总结

    1.ACL的全称是访问控制列表,本质上是定义一组策略,以便指导报文在交换机内部的转发行为. 2.要配置策略,首先要明确ACL应用的对象,可以是针对端口,也可以是针对特殊的一条流. 针对端口,就是指端口 ...

  2. Nginx 负载均衡4种模式

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/80541464 本文出自[赵彦军的博客] 4 种负载均衡算法 upstream 支持 ...

  3. (网页)websocket例子

    转载自博客园张果package action; import javax.websocket.CloseReason; import javax.websocket.OnClose; import j ...

  4. 运行svn tortoiseSvn cleanup 命令失败的解决办法

    这个时候请使用命令行模式运行 svn clean up 然后世界和平了:)

  5. [20190329]探究sql语句相关mutexes补充2.txt

    [20190329]探究sql语句相关mutexes补充2.txt --//昨天测试sql语句相关mutexes,看看如果出现多个子光标的情况. 1.环境:SCOTT@book> @ ver1P ...

  6. javascript语言之 this概念

    转载 猫猫小屋 http://www.maomao365.com/?p=837 由于javascript是一种解释性语言,运行时才会解释所有的变量值,所以对于javascript中this所指的对象是 ...

  7. 信号量的基本概念与使用semget,semop

    1.信号量的基本概念 信号量是一个计数器,常用于处理进程或线程的同步问题,特别是对临界资源的同步访问. 临界资源可以简单的理解为在某一时刻只能由一个进程或线程进行操作的资源,这里的资源 可以是一段代码 ...

  8. Python 输出格式符号

    Python 常见的输出格式符号

  9. Unity的AssetDatabase路径格式

    开发环境 windows 7 Unity 5.3 及更高版本 前言 使用AssetDatabase.Load或AnimatorController.CreateAnimatorControllerAt ...

  10. Ubuntu16.04系统安装搜狗输入法详细教程(转载)

    1.下载搜狗输入法的安装包 下载地址为:http://pinyin.sogou.com/linux/ ,如下图,要选择与自己系统位数一致的安装包,我的系统是64位,所以我下载64位的安装包 2.按键C ...