字节流-——》字符流的转换
输入来源:键盘,文件,网络
- InputStreamReader in = new InputStreamReader(System.in);
- InputStreamReader in = new InputStreamReader(new FileInputStream("lmk.txt"),"ISO8859_5");
输出方向:文件,屏幕
- FileWriter out = new FileWriter("output.txt");
- FileWriter out = new FileWriter(new FileOutputStream("output.txt"),"ISO8859_5");
-
OutputStreamWriter = new OutputStreamWriter(System.out);
文件的写入
主要使用 BufferedWriter PrintWriter 如果获得的输出流是二进制的则需要outputStreamWriter
文件的读入
主要使用BufferedReader 和
package com.lmk.test.iotest;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
public class IoTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
IoTest io = new IoTest();
System.out.println(System.getProperty("user.dir"));
// io.outfresh1();//使用PrintWrite写入
// io.outfresh2();//使用BufferedWrite写入
io.writeMore();
// io.infresh1();//使用BufferedReader
io.infresh2();//使用Scanner
}
private void writeMore() {
// TODO Auto-generated method stub
BufferedWriter write = null;
String name = "newlmk";
int age =22;
try {
write = new BufferedWriter(new FileWriter("d:/lmk.txt",true));//重点是这里要有True
for (int i=0;i<=100;i++){
write.append(name);
write.append(" ");
write.append(age+"");//此处一直写错,不知原因,但是最好不要使用BufferedWrite来写。
write.newLine();
}
write.flush();
write.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void infresh2() {
// TODO Auto-generated method stub
Scanner scanner = null;
try {
scanner = new Scanner(new FileReader("d:/lmk.txt"));
while (scanner.hasNext()){
System.out.print(scanner.nextLine());
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void infresh1() {
// TODO Auto-generated method stub
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader("d:/lmk.txt"));
System.out.println(reader.readLine());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void outfresh2() {
// TODO Auto-generated method stub
BufferedWriter write = null;
String name = "newlmk";
int age =22;
try {
write = new BufferedWriter(new FileWriter("d:/lmk.txt"));
for (int i=0;i<=100;i++){
write.write(name);
write.write(" ");
write.write(age);//此处一直写错,不知原因,但是最好不要使用BufferedWrite来写。
write.newLine();
}
write.flush();
write.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
}
}
private void outfresh1() {
// TODO Auto-generated method stub
PrintWriter print = null;
String name = "lmk";
int age =22;
try {
print = new PrintWriter("d:/lmk.txt");//PrintWriter(OutputStream out)
//根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。
print = new PrintWriter(new FileWriter("d:/lmk.txt"));//PrintWriter(Writer out, boolean autoFlush) 创建新 PrintWriter。
print.print(name);
print.print(" ");
print.println(age);
print.flush();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}finally{
print.close();
}
}
}