?由于字节流操作中文时不是特别方便,因此Java提供了字符流。
方法名 | 说明 |
---|---|
void write(int c) | 写一个字符 |
void write(char[] cbuf) | 写入一个字符数组 |
void write(char[] cbuf, int off, int len) | 写入字符数组的一部分 |
void write(String str) | 写入一个字符串 |
void write(String str, int off, int len) | 写入一个字符串的一部分 |
import java.io.*;
public class Demo {
public static void main(String[] args) throws IOException {
OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("D:\\fos.txt"));
osw.write(97); //int类型的
osw.write(98);
char[] chs1={'c','d'};
osw.write(chs1);
char[] chs2={'d','e','f','g'};
osw.write(chs2,1,3);
osw.write("ghijkl",1,5);
osw.close();
}
}
方法名 | 说明 |
---|---|
flush() | 刷新流,还可以继续写数据 |
close() | 先刷新流,再关闭流,释放资源,不可以继续写数据 |
方法名 | 说明 |
---|---|
int read() | 一次读一个字符数据 |
int read(char[] cbuf) | 一次读一个字符数组数据 |
import java.io.*;
public class Demo {
public static void main(String[] args) throws IOException {
InputStreamReader isr=new InputStreamReader(new FileInputStream("D:\\fos.txt"));
//int ch;
//while((ch=isr.read())!=-1){
// System.out.print((char)ch);
//}
char[] chs=new char[1024];
int len;
while((len= isr.read(chs))!=-1){
System.out.println(new String(chs,0,len));
}
isr.close();
}
}
import java.io.*;
public class Demo {
public static void main(String[] args) throws IOException {
BufferedWriter bw=new BufferedWriter(new FileWriter("D:\\fos.txt"));
bw.write("hello\r\n");
bw.write("world\r\n");
bw.close();
BufferedReader br=new BufferedReader(new FileReader("D:\\fos.txt"));
//int ch;
//while((ch=br.read())!=-1){
// System.out.print((char)ch);
//}
char[] chs=new char[1024];
int len;
while((len= br.read(chs))!=-1){
System.out.print(new String(chs,0,len));
}
br.close();
}
}
?1. BufferedWriter:void newLine()
:写一行行分隔符,行分隔符字符串由系统属性定义。
?2. BufferedReader:public String readLine()
:读一行文字,如果流的末尾已经到达,则为null。
import java.io.*;
public class Demo {
public static void main(String[] args) throws IOException {
BufferedWriter bw=new BufferedWriter(new FileWriter("D:\\fos.txt"));
for(int i=0;i<10;i++){
bw.write("hello"+i);
bw.newLine();
}
bw.close();
BufferedReader br=new BufferedReader(new FileReader("D:\\fos.txt"));
String line;
while((line= br.readLine())!=null){
System.out.println(line);
}
br.close();
}
}