Java---IO流讲解(2)
2023-12-26 06:40:01
1. 字符流
1.1 为什么出现字符流
?由于字节流操作中文时不是特别方便,因此Java提供了字符流。
1.2 字符流写数据的5种方式
方法名 | 说明 |
---|---|
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() | 先刷新流,再关闭流,释放资源,不可以继续写数据 |
1.3 字符流读数据的两种方式
方法名 | 说明 |
---|---|
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();
}
}
1.4 字符缓冲流
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.5 字符缓冲流特有功能
?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();
}
}
2. IO流小结
2.1 字节流
2.2 字符流
文章来源:https://blog.csdn.net/m0_62881487/article/details/135186835
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!