字符流只能读取纯文本
1.一次读入一个字符
package IO;
import java.io.*;
public class ReaderDemo1 {
public static void main(String[] args) throws IOException {
//创建字符流读取数据
Reader reader = new FileReader("day5\\lib\\1.txt");
//读取单一数据
/* int ch1 = reader.read();
System.out.println(ch1);*/
//读取整个文档字符(循环读取)
int ch ;
while((ch=reader.read()) != -1){
System.out.println(ch);
}
//释放资源
reader.close();
}
}
2.一次读入一个字符数组
package IO;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
public class ReaderDemo2 {
public static void main(String[] args) throws IOException {
//1.创建输入流对象
Reader reader2 = new FileReader("day5\\lib\\2.txt");
//读取数据
/*char[] ch3 =new char[3];
int len1 = reader2.read(ch3);
System.out.println(ch3);
System.out.println(len1);*/
//循环读取数据
char[] chs = new char[3];
int len2;
while((len2 = reader2.read(chs) )!= -1){
String s = new String(chs,0,len2);
System.out.println(s);
}
//释放资源
reader2.close();
}
}
3.字符流写数据
package IO;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
public class WriteDome1 {
public static void main(String[] args) throws IOException {
//创建输入流写入数据
Writer writer = new FileWriter("day5\\lib\\1.txt");
//写入数据
//1.一次写入一个字符
writer.write("我");
//一次写入一个字符数组
char[] ch1 ={'我','爱','你'};
writer.write(ch1,0,3);
//一次写入一个字符串
writer.write("爱情不是挣扎的挽留,而是顺其自然的成长");
//释放资源
writer.close();
}
}
4.字符流拷贝文件一次读写一个字符
package IO;
import java.io.*;
public class Kaobei {
public static void main(String[] args) throws IOException {
/*
* 通过字符拷贝文件,一次读写一个字符
* 需求:将1.txt的内容拷贝到2.txt
* IO流拷贝文件6大步鄹
* 1.创建输入流对象,关联数据源文件
* 2.创建字符输出对象,关联目的地文件
* 3.定义变量,记录读取的内容
* 4.循环读取,只要条件满足就一直读,并将读取到的内容赋值给变量
* 5.将读取到的数据写入到 目的地文件中
* 6.释放资源*/
Reader reader = new FileReader("day5\\lib\\1.txt");
//如果目的地不存在就会自动创建
Writer writer = new FileWriter("day5\\lib\\2.txt");
int len;
while((len=reader.read()) != -1){
writer.write(len);
}
reader.close();
writer.close();
}
}
5.字符流拷贝文件一次读写一个字符数组
package IO;
import java.io.*;
public class Kaobei2 {
public static void main(String[] args) throws IOException {
//1.创建输入流对象,关联数据源文件
Reader reader2 = new FileReader("day5\\lib\\1.txt");
//2.创建字符输出对象,关联目的地文件
Writer writer2 = new FileWriter("day5\\lib\\2.txt");
//定义变量
char[] ch = new char[1024];
int len;
while((len=reader2.read(ch))!= -1){
writer2.write(ch,0,len);
}
//释放资源
reader2.close();
writer2.close();
}
}
6.字符缓冲流之读写一个一行
package IO;
import java.io.*;
//字符流一次拷贝一行(注意字符流只能拷贝纯文本文件,图片就不行)
public class kaobei3 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new FileReader("day5\\lib\\1.txt"));
BufferedWriter bw = new BufferedWriter(new FileWriter("day5\\lib\\2.txt"));
String str;
while((str=br.readLine())!=null){
bw.write(str);
bw.newLine();//换行
}
br.close();
bw.close();
}
}
7.普通字节流可读写图片
package IO;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class TupainKaobei {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("day5/lib/a.jpg");
FileOutputStream fo = new FileOutputStream("day5/lib/b.jpg");
int len;
while((len=fis.read())!=-1) {
fo.write(len);
}
fis.close();
fo.close();
}
}