FileReader读取
Reader
是一个输入流接口,与同为输入流的
InputStream
不同的是,
InputStream
会将内容自动编码成字节,获取的流是字节流。而
Reader
读取的是字符。
FileReader
是
Reader
的一个子类,可以用来读取文件内容。
参考
cd_sywe的博客
所给出的代码做一些验证以便理解。
用FileReader对象即可打开文件,将这个文件作为对象来使用
public static void readFile() throws IOException {
// 创建一个FileReader对象:
Reader reader = new FileReader("src/readme.txt");
for (;;) {
int n = reader.read(); // 反复调用read()方法,直到返回-1
if (n == -1) {
break;
System.out.print((char)n); // 打印char
reader.close(); // 关闭流
read()方法会读出文件中的一个字符,多次读取直到读完即可遍历文件内容。读完时会返回-1。
- 【是逐个字符,一个汉字也是字符,一个数字也是字符,用println可以看出每一个字符都在单独一行。如果改成print则可以看到和文件内相同的格式(包括换行)】
在循环中还加入了打印当前字符的操作,以便于在遍历完后验证是否打印了所有内容。
也可以直接把文件读取到数组中,类似于inputStream
public static void readFile(char[] arr) throws IOException {
try (Reader reader = new FileReader("src/readme.txt")) {
int n;
while ((n = reader.read(arr)) != -1) {
System.out.println("read " + n + " chars.");
System.out.println(arr);
这个方法能把文件内容读取到指定的数组中,便于在缓冲区操作。
最后一行System.out.println(arr);是我加的,用于查看读取的结果。System.out.println("read " + n + " chars.");会打印出一共读取了多少字符。
在src目录下创建文档,编辑内容:
这是说明文档
在文档中加入回车测试读取效果
1、若能读取回车则试图读取半角符号(1, w)
这样就可以测试常见的文本类型的读取(圆角、半角、数字、字母、空格、回车)。
在主函数中执行的步骤。
public static void main(String[] args) throws IOException {
readFile();
char[] arr = new char[200];
readFile(arr);
可以在控制台看到打印出的结果,两种readFile都能在控制台打印出读取文件的结果。
(已经把println换成print,不然截图比较麻烦)
由于无法预知输入内容的长度,所以只能定义一个比较长的数组,但是这会在打印的时候产生一些问题(在介绍打印的部分来说)
FileWriter
由于无需想读取那样循环读出字符,而是一次性写入,所以不再单独写出方法,直接在主函数中加入write语句来实验用法。
public static void main(String[] args) throws IOException {
readFile();
char[] arr = new char[200];
readFile(arr);
try (Writer writer = new FileWriter("src/writeme.txt")) {
writer.write('H'); // 写入单个字符
writer.write("Hello".toCharArray()); // 写入char[]
writer.write("Hello"); // 写入String
writer.write(arr);
在之前的基础上加入了FileWriter对象的write方法,可以看出参数可以是字符、字符串和字符数组。用记事本打开相应文件可以看到内容已经写入。
但是在IDEA中查看文档会发现有很多的空字符也被打印下来了,只不过在记事本中空字符以空格的形式出现,不选中就看不见。
若需要无误地向文件中写入内容,还需要筛选数组中的空元素。
java FileReader/FileWriter读写字母和数字没问题,但读写汉字乱码。记录下,后面找到解决方法再补上。
public static void main(String[] args) {
FileReader fr = null;
FileWriter fw = null;
try {
int a = 0;
fr = new FileReader(c:/a.txt);//读取目标
fw = new FileWriter(c:/b.txt);//写入目标
while((a=fr.read())!=-1){
System.out.print((char)
-- FileWriter(File file),根据给定的file对象构造一个FileWriter对象。--- FileWriter(File file,boolean append),根据给定的file对象构造一个FileWriter对象。--- FileReader(String fileName),在给定从中读取数据的文件名的情况下创建一个新的FileReader。--- FileReader(File file),在给定从中读取数据的File的情况下创建一个新的FileReader。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOExcept...
java FileReader/FileWriter读写字母和数字没问题,但读写汉字就乱码。记录下,后面找到解决方法再补上。
public static void main(String[] args) {
FileReader fr = null;
FileWriter fw = null;
try {
int a = 0;
fr = new FileReader("c:/a.txt...
简介如果看了上一篇 FileInputStream和FileOutputStream读写文件,然后实现文件的拷贝。那么对与这篇就是小菜一碟。唯一区别在于上一个是基于字节流,这个基于字符流。字节流就用byte数组充当缓存,字符流用char数组即可。文件拷贝package FileReaderWriter;
import java.io.File;
import java.io.FileReader;...
纯前端上传文件获取数据并解析,将数据导出生成文件纯前端上传文件获取数据并解析,将数据导出生成文件上传文件获取数据并解析将数据导出生成文件FileReader()用法FileReader定义了3种读取文件内容的方法:readAsBinaryString、readAsDataURL、readAsTextFileReader定义了6种处理事件:onabort、onerror、onload、onloade...
ArrayBuffer 实践
ArrayBuffer对象、TypedArray视图和DataView视图是 JavaScript 操作二进制数据的一个接口。都是以数组的语法处理二进制数据,所以统称为二进制数组。主要用于二进制数据的通信。
ArrayBuffer 以数组的形式直接操作内存,提升了脚本的性能。二进制数组由三类对象组成。
ArrayBuffer 对象
TypedArray 视图
@[TOC](JavaScript读写本地文件(HTML5 FileReader FileWriter) )
主要利用HTML5的新特性 File System API 来实现读写文件操作
FileWriter
FileReader
下图可以看到文件已经被成功的读取
在文件aaa.txt中写下了(鹅鹅鹅曲项向天歌)内容,把aaa.txt中的内容先写到内存中,再从内存中读取到axa.txt中。
代码如下:
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class IOTest3 {
public stat...
FileWriter和FileReader是用来实现将字符读写到文件的IO类。1.FileWriter 是用来方便的将字符数据写入文件的类,这个类的构造函数假设默认的字符编码方式和缓冲区大小的可被接受的,如果要改变指定编码和缓冲区大小可以用FileOutputStream来构造一个OutputStreamWriter来实现。
当文件没有找到时,一般是可以自动创建文件,但这也和平台有关,有的平
FileReader详解
FileReader API提供了大量的方法来读取File对象或Blob对象,并且这些方法都是异步的。这意味着当程序读取文件时并不会发生阻塞,使用这些方法读取大文件将更加有用。
简单地说,FileReader对象可以异步读取存储在开发者的计算机磁盘上的数据内容,可以使用File对象或Blob对象来指定所要处理的文件或数据。File对象提供了三种方式来读取文件,第一种文件是...