// InputStream 抽象类,输入流;
// FileInputStream i=new FileInputStream(file); 来源 字节 input output
// DataInputStream i=new DataInputStream(inputstream); 强化处理 ,能提出基本数据类型,用的较少,曾经频繁用于网络通信
// ObjectInputStream o=new ObjectInputStream(inputstream); 强化处理,面向对象的强化,可以读写 自定义类的对象
//使用objectinputstream 时要对读写的自定义类做特殊处理,让离开堆空间的数据依然有对类的描述信息
// FileReader 来源。字符Reader Writer
// BufferedReader 强化处理,字符文档编辑器
// !!!!!!!!word文档属于字节在处理
// 文件,字符型的复制
File f=new File("C:\\Users\\花花\\Desktop\\1.txt");
File f1=new File("C:\\Users\\花花\\Desktop\\1c.txt");
FileReader fr=null;
FileWriter fw=null;
System.out.println(f1.exists());
BufferedReader br=null;//强化基础流 新
BufferedWriter bw=null; // 新
try {
fr=new FileReader(f);
fw=new FileWriter(f1);
char[] cs=new char[100];
br=new BufferedReader(fr);
bw=new BufferedWriter(fw);
while(true){
// int num=fr.read(cs); //读取文件信息进内存
// if(num==-1)break;
// fw.write(Arrays.copyOf(cs,num));//输出。
//
String str=br.readLine();
if(str==null)break;
System.out.println(str);
fw.write(str);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
try {
fr.close();
fw.close();
br.close();
bw.close();
} catch (Exception e2) {
// TODO: handle exception
}
}
}
}
#2 练习题
public class Demo1_yinmi {
//比较适合加密。object啥啥啥。序列化
public static void main(String[] args) {
// TODO Auto-generated method stub
File f=new File("C:\\Users\\花花\\Desktop\\1c.txt");
try {
FileOutputStream fo=new FileOutputStream(f);
ObjectOutputStream o=new ObjectOutputStream(fo);//增强
o.writeObject(new Msg("a",new Date()));
FileInputStream fi=new FileInputStream(f);
ObjectInputStream oi=new ObjectInputStream(fi);//增强
Msg m=(Msg)oi.readObject();
System.out.println(m);
fi.close();
oi.close();
} catch (Exception e) {
// TODO: handle exception
}
}
}
class Msg implements Serializable{
private int num;
private static int count;
private String name;
private Date date;
private static SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:ss:mm");
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public static SimpleDateFormat getSdf() {
return sdf;
}
public static void setSdf(SimpleDateFormat sdf) {
Msg.sdf = sdf;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((date == null) ? 0 : date.hashCode());
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + num;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Msg other = (Msg) obj;
if (date == null) {
if (other.date != null)
return false;
} else if (!date.equals(other.date))
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (num != other.num)
return false;
return true;
}
public Msg( String name, Date date) {
super();
num=count++;
this.name = name;
this.date = date;
}
@Override
public String toString() {
return "Msg [num=" + num + ", name=" + name + ", date=" + date + "]";
}
}