–包裝類
• 轉化類:字節/字符/數據類型的轉化類
• 裝飾類:裝飾節點類
–InputStream, OutputStream(字節)
• FileInputStream,FileOutputStream
–Reader,Writer(字符)
• FileReader, FileWriter
–InputStreamReader:文件讀取時字節,轉化爲Java能理解的字符
–OutputStreamWriter:Java將字符轉化爲字節輸入到文件中
–DataInputStream,DataOutputStream: 封裝數據流
–BufferedInputStream,BufferOutputStream:緩存字節流
–BufferedReade, BufferedWriter:緩存字符流
–先建立文件,寫入數據,關閉文件
–FileOutputStream, OutputStreamWriter, BufferedWriter
–BufferWriter
• write
• newLine
–try-resource 語句,自動關閉資源
–關閉最外層的數據流,將會把其上全部的數據流關閉
public static void writeFile1() {
FileOutputStream fos = null;
OutputStreamWriter osw = null;
BufferedWriter bw = null;
try {
fos = new FileOutputStream("c:/temp/abc.txt"); // 節點類
osw = new OutputStreamWriter(fos, "UTF-8"); // 轉化類
//osw = new OutputStreamWriter(fos); // 轉化類
bw = new BufferedWriter(osw); // 裝飾類
// br = new BufferedWriter(new OutputStreamWriter(new
// FileOutputStream("c:/temp/abc.txt")))
bw.write("咱們是");
bw.newLine();
bw.write("Ecnuers.^^");
bw.newLine();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
bw.close(); // 關閉最後一個類,會將全部的底層流都關閉
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
public static void writeFile2() {
//try-resource 語句,自動關閉資源
try (BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("c:/temp/abc.txt")))) {
bw.write("咱們是");
bw.newLine();
bw.write("Ecnuers.^^");
bw.newLine();
} catch (Exception ex) {
ex.printStackTrace();
}
}
–先打開文件,逐行讀入數據,關閉文件
–FileInputStream, InputStreamWriter, BufferedReade
–BufferReader
• readLine
–try-resource 語句,自動關閉資源
–關閉最外層的數據流,將會把其上全部的數據流關閉
public static void readFile1() {
FileInputStream fis = null;
InputStreamReader isr = null;
BufferedReader br = null;
try {
fis = new FileInputStream("c:/temp/abc.txt"); // 節點類
isr = new InputStreamReader(fis, "UTF-8"); // 轉化類
//isr = new InputStreamReader(fis);
br = new BufferedReader(isr); // 裝飾類
// br = new BufferedReader(new InputStreamReader(new
// FileInputStream("c:/temp/abc.txt")))
String line;
while ((line = br.readLine()) != null) // 每次讀取一行
{
System.out.println(line);
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
br.close(); // 關閉最後一個類,會將全部的底層流都關閉
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
public static void readFile2() {
String line;
//try-resource 語句,自動關閉資源
try (BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("c:/temp/abc.txt")))) {
while ((line = in.readLine()) != null) {
System.out.println(line);
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
public class FileW {
public static void main(String[] args) {
//寫文件
FileOutputStream fos = null; //節點類
OutputStreamWriter osw = null; //轉換類
BufferedWriter bw=null; //裝飾類
try {
fos = new FileOutputStream("D:\\MyJava\\Code\\JH16\\test\\aa\\bb\\E.txt");
osw = new OutputStreamWriter(fos);
bw = new BufferedWriter(osw);
//開始寫入
bw.write("咱們是:");
bw.newLine();
bw.write("fwawa!");
bw.newLine();
}catch(Exception e) {
System.err.println(e.getMessage());
}finally{
try {
bw.close();
}catch(Exception e) {
System.err.println(e.getMessage());
}
}
//讀取文件
String line;
try(BufferedReader in =
new BufferedReader(
new InputStreamReader(
new FileInputStream("D:\\MyJava\\Code\\JH16\\test\\aa\\bb\\E.txt")))){
while((line=in.readLine())!=null) {
System.out.println(line);
}
}catch(Exception e) {
System.err.println(e.getMessage());
}
}
}