字符流
字符输出流
一个字符一个字符的读
注意: 只能用来操作文本(不能写图片 音频 视频)
Writer(所有字符输出流的 父类 抽象类)
FileWriter(专门用来写文本)
构造方法(帮顶谢入的路径):
文件
字符串
Mac系统下 一个中文字符 占 3个字节
默认的使用UTF-8的编码表(通用的编码表)
Windows系统下 一个中文字符 占两个字节
默认使用的GBK的编码表(简体中文)
public class Demo04 {
public static void main(String[] args) throws IOException {
FileWriter fWriter = new FileWriter("/Users/s/Desktop/Test/hh.txt");
fWriter.write(100);
fWriter.flush();
char[] c = {'a','b','c'};
fWriter.write(c);
fWriter.flush();
fWriter.write(c, 1, 2);
fWriter.flush();
fWriter.write("你好\n");
fWriter.flush();
fWriter.write("吃了么\n");
fWriter.flush();
fWriter.write("天气真好\n");
fWriter.flush();
fWriter.write("下次再见", 1, 2);
fWriter.flush();
fWriter.close();
}
}
字符输入流
Reader(所有字符输入流的父类 抽象类)
写的时候可以直接写入字符串
读的时候不可以
因为字符串很难界定到哪儿结束
a asd 1 都是字符串
所有者与不太容易判断一个字符串
FileReader
ublic class Demo05 {
public static void main(String[] args) throws IOException {
FileReader fReader = new FileReader("/Users/s/Desktop/Test/hh.txt");
int len = 0;
char[] b = new char[1024];
while ((len = fReader.read(b)) != -1) {
System.out.println(new String(b, 0, len));
}
fReader.close();
}
}
利用字符流复制文件(带异常处理)
public class Demo {
public static void main(String[] args) {
File oldFile = new File("/Users/s/Desktop/Test/hh.txt");
File newFile = new File("/Users/s/Desktop/Test/hh1.txt");
copyFile(oldFile, newFile);
}
public static void copyFile(File oldFile,File newFile) {
FileReader oldFRead = null;
FileWriter newWrite = null;
try {
oldFRead = new FileReader(oldFile);
newWrite = new FileWriter(newFile);
int len = 0;
char[] b = new char[1024];
while ((len = oldFRead.read(b)) != -1) {
newWrite.write(b, 0, len);
}
} catch (FileNotFoundException e) {
throw new RuntimeException("文件找不到");
} catch (IOException e) {
throw new RuntimeException("复制失败");
}finally {
try {
if (oldFRead != null) {
oldFRead.close();
}
} catch (IOException e) {
throw new RuntimeException("关闭资源失败");
}finally {
try {
if (newWrite != null) {
newWrite.close();
}
} catch (IOException e) {
throw new RuntimeException("关闭资源失败");
}
}
}
}
}
Day.25
http://blog.csdn.net/ssssssue