file io
File:java.io.File
File file = new File(path);//第一步即使path不存在,也不出错
file只能做文件的额创建、删除 明明v等,文件内容的操作需要通过io操作
FileInputStream fis
fis.read() 返回一个int型数据,这是读取的一个字节,如果读取到文件末尾,返回-1
while(fis.read() != -1){
(char)fis.read()//读出一字节的数据
}
fis = new FileInputStream(file);
byte [] b = new byte[3];
//每次读3个字节后放入b中,
int len;
while((len=fis.read(b)) != -1){
// for(int i=0;i<len;i++){//i不能写成i<b.leng 这样的话每次读3个 如果文件不是3的倍数会出错
// System.out.print((char)b[i]);
// }
System.out.print(new String(b, 0, len));
}
//输出的文件可以不存在,执行过程中会自动创建
fos = new FileOutputStream(file);
fos.write(new String ("china").getBytes());
下次写入会覆盖文件内容
FileReader FileWriter处理字符
File file = new File("note");
fr = new FileReader(file);
char[] c = new char[20];// 一次读20个字符
int len;
while ((len = fr.read(c)) != -1) {
System.out.print(new String(c, 0, len));
}
//处理流 加速对节点流的处理
BufferedInputStream BufferedOutputStream
BufferedReader BufferedWriter
br = new BufferedReader(fr);
bw = new BufferedWriter(fw);
char [] c = new char[20];
// int len;
// while((len=br.read(c))!= -1){
// bw.write(c, 0, len);
// bw.flush();
// }
String str;
while((str=br.readLine())!= null){
bw.write(str);
bw.newLine();
bw.flush();
}
字节处理,byte[] 字符处理char[]
转换流 //封装字符
BufferedReader br = null;
BufferedWriter bw = null;
try {
File src = new File("copy.txt");
File des = new File("copy1.txt");
//首先是字节流作用在一个文件上
FileInputStream fis = new FileInputStream(src);
FileOutputStream fos = new FileOutputStream(des);
//将字节流转换为字符流
InputStreamReader isr = new InputStreamReader(fis, "GBK");
OutputStreamWriter osw = new OutputStreamWriter(fos, "GBK");
br = new BufferedReader(isr);
bw = new BufferedWriter(osw);
String str;
while((str=br.readLine())!= null){
bw.write(str);
bw.newLine();
bw.flush();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated c
使用static transient修饰的属性不能被序列化
posted on 2018-04-03 10:53 HelloWorld20180327 阅读(106) 评论(0) 编辑 收藏 举报