企业品牌建设方案范文,如何给自己网站做优化,推广网站代码,新网站不收录字符流
字符流其实就是字节流字符集#xff0c;他在遇到相关的数据时会转变为相关的字节#xff0c;例如遇到英文就转变为一个字节#xff0c;遇到中文转变为三个字节
FileReader#xff08;读取数据类#xff09;
作用#xff1a;纯文本文件--------程序
将纯文…字符流
字符流其实就是字节流字符集他在遇到相关的数据时会转变为相关的字节例如遇到英文就转变为一个字节遇到中文转变为三个字节
FileReader读取数据类
作用纯文本文件--------程序
将纯文本文件里的数据读取到程序中同样也分为三个步骤
1、创建字符输入流对象
2、读取数据
3、释放资源
在默认的read方法读取数据时读英文时跟字节流一致一次读一个字节但是如果读到中文就会一次读取三个字节并在读取完之后返回一个整数类型的值如果想看到源文件中被读取的数据需要对这个返回的整数进行一个数据类型的转换如果读取完该文件的数据会返回-1
具体实现代码如下源文件数据为
abcdefghibbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb看看我被复制了吗哈
package com.itazhang.Demo1;import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;public class CharStreamDemo2 {public static void main(String[] args) throws IOException {FileReader fr new FileReader(D:\\11Codingtext\\MyIO\\a.txt);int read fr.read();System.out.println((char) read);}
}使用read(char数组)的方式能一次读取数组长度个数据这样的话在读取的时候读取出来的数据是直接存储在这个char数组中的而此时read(char数组)这个方法的返回值是这个数组的长度也是一次能读取的数据个数在读取完本文件数据之后同样会返回-1。他与字节流读取不同的地方在于他读取存入的数据是char类型而字节流读取之后存入的是byte类型
实现代码如下具体实现方法与字节流的数组读取类似只不过字节流的数组读取的数组是byte类型而下列代码也就是字符流的数组读取的数组类型为char类型
package com.itazhang.Demo1;import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;public class CharStreamDemo1 {public static void main(String[] args) throws IOException {FileReader fr new FileReader(D:\\11Codingtext\\MyIO\\a.txt);FileWriter fw new FileWriter(D:\\11Codingtext\\MyIO\\b.txt);char[] crr new char[10];int temp;while(true){temp fr.read(crr);if(temp -1){break;}fw.write(crr,0,temp);}fw.close();fr.close();}
}Filewriter(写出数据类)
字节流输出文本文件数据的话是使用 Filewriter进行将数据从程序输出到文件中
作用程序数据---------文件
练习
下列为一个文件加字节流实现的小练习要求将a文件中的数据
4-9-1-7-8-2
按照从小到大的顺序排列并输出到该文件中具体实现代码如下
package com.itazhang.Demo1;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.StringJoiner;public class ByteStreamExercise1 {public static void main(String[] args) throws IOException {FileInputStream fi new FileInputStream(D:\\11Codingtext\\MyIO\\a.txt);int temp;StringBuilder sb new StringBuilder();//读取数据while (true){temp fi.read();if(temp -1){break;}sb.append((char)temp);}fi.close();//对其进行排序Integer[] s Arrays.stream(sb.toString().split(-)).map(Integer::parseInt).sorted().toArray(Integer[]::new);//用Stringjoiner进行将数据排出StringJoiner sj new StringJoiner(-);//这里不是将整个数组转化类型而是将数组里的每个元素转化类型for (Integer integer : s) {sj.add(integer.toString());}String str sj.toString();FileOutputStream fw new FileOutputStream(D:\\11Codingtext\\MyIO\\a.txt);fw.write(str.getBytes(StandardCharsets.UTF_8));fw.close();}
}