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