字符流的使用
输入流
//对文件进行操作,必须将文件封装为具体的File类对象
File file=new File("c:\\test.txt");
//用输入流连接文件
FileReader fr=new FileReader(file);
//读取文件
// int n1=fr.read();
// System.out.println(n1);
// int n2=fr.read();
// System.out.println(n2);
int n;
while (true){
n= fr.read();
if (n==-1)
break;
System.out.println(n);
}
//流关闭操作
fr.close();
输出流
//程序中的字符串
String str="Hello";
//文件
File file=new File("c:\\tool\\demo.txt");
//字符输出流
FileWriter fw=new FileWriter(file);
//写入
fw.write(str);
//关闭流
fw.close();
字节流的使用
//文件
File file=new File("c:\\tool\\demo.txt");
if (file.exists()){ //如果文件存在
//输入流
FileInputStream fis=new FileInputStream(file);
ObjectInputStream ois=new ObjectInputStream(fis);
//读取文件
ArrayList books=(ArrayList) ois.readObject();
//关闭流
ois.close();
//删除操作
Scanner sc=new Scanner(System.in);
System.out.print("请输入要下架的书籍编号:");
int id=sc.nextInt();
Book item=null;
for(int i=0;i<books.size();i++){
Book book=(Book) books.get(i);
if (book.getId()==id){
item=book;
}
}
if (item==null){
System.out.println("该书籍不存在!");
}else {
books.remove(item);
//输出流
FileOutputStream fos=new FileOutputStream(file);
ObjectOutputStream oos=new ObjectOutputStream(fos);
//输出
oos.writeObject(books);
//关闭流
oos.close();
System.out.println("下架成功!");
}
}else {
System.out.println("还未上架书籍,请先上架书籍!");
}
要将程序中用到的类序列化
public class Book implements Serializable