字节流的相关操作:
介绍:字符流:读写单位是字符
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();
}
}