字符流主要对于处理文本内容的读写十分的方便,按照字符的输入和输出和字节流操作上没有区别,但是在读取和写入时的操作单位不再是byte。
一、文件输入流FileReader,读取文件内容:
package io.charput;
import java.io.File;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class FilePathDemo {
public static void main(String[] args) {
String fileName = "F:" + File.separator + "test.txt";
String content = readStrFormFile(fileName);
System.out.println(content);
}
public static String readStrFormFile(String fileName) {
try {
FileReader fr = new FileReader(fileName);
char[] chars = new char[512];
int len = fr.read(chars);
fr.close();
return new String(chars, 0, len);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}
}
二、文件输出流FileWriter,向文件写入内容:
package io.charput;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FilePathDemo1 {
public static void main(String[] args) {
String path = FileReader.class.getResource("/").getFile();
String fileName = path + "/test.data";
String[] words={" Lily,女,14","Lucy,女,15","Lilei,男,16"};
writeStr2File(fileName, words);
String content=readStrFormFile(fileName);
System.out.println(content);
}
public static String readStrFormFile(String fileName) {
try {
FileReader fr = new FileReader(fileName);
char[] chars = new char[512];
int len = -1;
String str = "";
while ( (len=fr.read(chars)) != -1 ) {
str += new String(chars, 0, len);
}
fr.close();
return str;
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
public static void writeStr2File(String fileName,String[] content) {
try {
FileWriter fw = new FileWriter(fileName);
for (String str : content) {
fw.write(str + "\r\n");
}
fw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}