I/O
1. I/O的含义:
相对与Java程序的输入和输出
2. 流的分类:
字节流
字符流
3. 常见的几种流的特点
FileInputStream、FileOutputStream 字节流
FileReader 、FileWriter 字符流
InputStreamReader、OutputStreamWriter 转换流
BufferedReader、BufferedWriter 包装流
ObjectInputStream、ObjectOutputStream 对象流
4.
//字节流
FileInputStream: 特点:以字节的形式读取文件到Java程序中
FileInputStream file=new FileInputStream(new File("src/FileOutputStream.txt"));
byte[] buf=new byte[1024];
file.read(buf);//读取文件到buf中
String str=new String(buf);//将字节数组转换为字符串
System.outprintln(str.trim());
file.close();//不要忘记关闭
FileOutputStream: 特点:以字节的形式输出文件
File file=new File("src/FileOutputStream.txt");
//建立输出的字节流
FileOutputStream f=new FileOutputStream(file);
//输出
//f.write(97); 输出一个a
String str="hello";
byte[] buf = str.getBytes();
f.write(buf);
//刷新
f.flush();
//流使用后要关闭
f.close();
//转换流
//将输出型的字节流转化为字符流
//特点 :以字符的形式输出文件
OutputStreamWriter ow=new OutputStreamWriter(new FileOutputStream(new File("src/outwriter.txt")));
ow.write("writer");
ow.flush();
ow.close();
//包装流(字节流)
特点:效率高
BufferReader:
FileReader reader=new FileReader(new File(src/outwriter.txt));
BufferedReader br=new BufferedReader(reader);
//读取多行
String str="";
String str2="";
while((str=br.readLine())!=null){
str2+=str;
}
System.out.println(str2);
br.close();//只关闭包装流那么流就被关闭了
BufferedWriter:
FileWriter writer=new FileWriter(new File(src/outwriter.txt));
BufferedWriter bw=new BufferedWriter(Writer);
bw.writer("text");
bw.flush();
bw.close();
//对象流
ObjectInputStream:
FileInputStream in=new FileInputStream("src/ObjectText.txt");
ObjectInputStream input=new ObjectInputStream(in);
Member m=(Member) input.readObject();
System.out.println(m.getUserName()+" "+m.getPassWord()+" "+m.getSex()+" "+m.getAddress());
ObjectOutputStream:
FileOutputStream out=new FileOutputStream("src/ObjectText.txt");
ObjectOutputStream output=new ObjectOutputStream(out);
Member m=new Member();
m.setUserName("张三");
m.setPassWord("66666");
m.setSex("男");
m.setAddress("浙江");
output.writeObject(m);
output.flush();
output.close();
Member类:
public class Member implements Serializable{
private String UserName;
private transient String PassWord; //transient设置为不可序列化
private String Sex;
private String Address;
public String getUserName() {
return UserName;
}
public void setUserName(String userName) {
UserName = userName;
}
public String getPassWord() {
return PassWord;
}
public void setPassWord(String passWord) {
PassWord = passWord;
}
public String getSex() {
return Sex;
}
public void setSex(String sex) {
Sex = sex;
}
public String getAddress() {
return Address;
}
public void setAddress(String address) {
Address = address;
}
}
//PrintWriter
//字符流
//servlet输出页面时使用的就是这个方法
PrintWriter pw=new PrintWriter(new File("src/pw.txt"));
pw.print("张三");
pw.flush();
pw.close();
XML:
1、含义:可扩展标记语言
<?xml version ="1.0"?>
<标记属性 ="属性值">
</标记>
2、作用:
存储数据
传输数据
3、XML的好处:
层次结构较为清晰
跨平台
4、约束文档:
DTD, Schema
5、XML的解析: 不同语言解析的方式是不一样的
Java解析XML文件:SAX
DOM
DOM4J
JDOM