字符流的相关操作(3+1)

字节流的相关操作:

介绍:字符流:读写单位是字符

 java.io.Reader:输入流的顶级父类
 java.io.Writer:输出流的顶级父类

1.OutputStreamWriter+InputStreamReader

  PS:转换流,本质就是一个个读写字符。

        同时字节流转换为字符流,给其他高级流使用,

2.BufferedReader按行读取字符串+BufferedWriter(略)

3.PrinterWriter具有自动行刷新的缓冲字符输出流+PrintReader

   PS:可以处理字节流,字符流,第二个参数是true具有自动行刷新功能

4.Note(笔记本案例)

*******************************************************************************************

public class A_OutputStreamWriter {
public static void main(String[] args) throws Exception {
FileOutputStream fos=new FileOutputStream("demo1.txt");
OutputStreamWriter osw=new OutputStreamWriter(fos,"utf-8");
osw.write("我爱北京天安门");
osw.write("天安门上太阳升");
System.out.println("写出完毕!");
osw.close();
}
}

public class A_InputStreamReader {
public static void main(String[] args) throws Exception {
FileInputStream fis=new FileInputStream("demo1.txt");
InputStreamReader isr=new InputStreamReader(fis,"utf-8");
int d=-1;
while((d=isr.read())!=-1){
System.out.print((char)d);
}
isr.close();
}
}

public class B_BufferedReader {
public static void main(String[] args) throws Exception {
FileInputStream fis=new FileInputStream("src/day03/BRDemo.java");
InputStreamReader isr=new InputStreamReader(fis);
BufferedReader br=new BufferedReader(isr);
 //BufferedReader提供了按行读取的方法
 //String readLine();
 //连续读取若干个字符,直到读取到换行符为止
 //并以换行符之间的字符数组以字符串的形式返回
 //返回值为null表示读取到了文件末尾
 //注意:字符串不包含最后的换行符

String line=null;
while((line=br.readLine())!=null){
System.out.println(line);
}
br.close();
}
}

public class B_PrintWriter1 {
public static void main(String[] args) throws Exception, Exception {
//字节流,字符流(转换流),缓冲字符流,本体
PrintWriter pw=new PrintWriter("pw.txt","utf-8");
pw.println("锄禾日当午");
pw.println("清明上河图");
System.out.println("写出完毕");
pw.close();
}
}

public class B_PrintWriter2 {
public static void main(String[] args) throws Exception {
FileOutputStream fos=new FileOutputStream("demo1.txt");
OutputStreamWriter osw=new OutputStreamWriter(fos,"utf-8");
PrintWriter pw=new PrintWriter(osw,true);
pw.print("呵呵");//print没有
pw.println("呵呵");//这个有自动行刷新
System.out.println("写出完毕!");
pw.close();
}
}

public class C_Note {
public static void main(String[] args) throws Exception {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入文件名");
String fileName=scanner.nextLine();

FileOutputStream fos=new FileOutputStream(fileName);
OutputStreamWriter osw=new OutputStreamWriter(fos,"utf-8");
PrintWriter pw=new PrintWriter(osw,true);//自动行刷新,必须是println才行
System.out.println("请开始输入内容!");
String line=null;
while(true){
line=scanner.nextLine();
if("exit".equals(line)){
System.out.println("再见!");
break;
}
pw.println(line);
//pw.flush();,因为可以自动行刷新了
}
pw.close();
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值