1.将文本文件显示在控制台上
public static void test1() throws IOException {
//将文本文件显示在控制台上
//创建转换流,读入文件
BufferedReader in=new BufferedReader(new InputStreamReader(new FileInputStream("in.txt")));
//创建一个转换流,并使用BufferedReader提高效率
BufferedWriter out=new BufferedWriter(new OutputStreamWriter(System.out));
String string=null;
while((string=in.readLine())!=null) {
//写入
out.write(string);
//换行
out.newLine();
//刷新
out.flush();
}
}
2.将键盘输入的内容写到文件里
public static void test2() throws IOException {
//将键盘输入的内容写入到一个文件里
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter out=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("out.txt")));
String string=null;
while((string=in.readLine())!=null) {
if(string.equals("over"))
break;
out.write(string);
out.newLine();
out.flush();
}
}
3.将从文件中读到的数据写到文件里
public static void test3() throws IOException {
BufferedReader in=new BufferedReader(new InputStreamReader(new FileInputStream("in.txt")));
BufferedWriter out=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("out.txt")));
String string=null;
while((string=in.readLine())!=null) {
out.write(string);
out.newLine();
out.flush();
}
}
4.从键盘读入数据,从键盘输出数据
//实现从键盘读入,从键盘输出
public static void test4() throws IOException {
InputStream in=System.in;
///字节流转变为字符流
InputStreamReader change=new InputStreamReader(in);
//装饰,提高效率
BufferedReader buff=new BufferedReader(change);
String string=null;
//字节流
OutputStream out=System.out;
///FileWrite的父类
OutputStreamWriter changew=new OutputStreamWriter(out);
BufferedWriter buffout=new BufferedWriter(changew);
while((string=buff.readLine())!=null) {
out.write(string.getBytes());
if(string.equals("over"))
break;
// System.out.println(string.toUpperCase());
buffout.write(string+'\r'+'\n');
buffout.flush();
}
}
5.指定编码格式的写入操作
//指定编码表的写入操作
public static void test5() throws IOException {
OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("gbk1.txt"),"GBK");
FileWriter fw=new FileWriter("gbk2.txt");
//如上两种操作的等效,
//FileWriter实际上是已经指定好编码格式的转换流,
//入过需要指定具体的编码格式,FileWriter就不行了
osw.write("你好");
fw.write("你好");
osw.flush();
fw.flush();
}
//指定编码格式读入,要使用相同的编码格式解码
public static void test6() throws IOException {
//使用utf-8编码格式读入
OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("utf-8.txt"),"utf-8");
osw.write("你好");
osw.flush();
//如果是用FileReader读入,因为FileReader是默认的系统的编码格式GBK,所以在解码是会乱码
FileReader file1=new FileReader("utf-8.txt");
char []ss=new char[1024];
int len=file1.read(ss);
String string=new String(ss,0,len);
System.out.println(string);
//使用转换流指定utf-81的编码格式解码,就不会出现乱码的情况
InputStreamReader ipr=new InputStreamReader(new FileInputStream("utf-8.txt"),"utf-8");
len=ipr.read(ss);
string=new String(ss,0,len);
System.out.println(string);
}