Java-IO流2
2021/11/16 9:11:03
本文主要是介绍Java-IO流2,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
字符流
- 字符流的父类(抽象类):
- Reader:字符输入流
-
public int read(){} public int read(char[] c){} public int read(char[] b,int off,int len){}
-
- Writer:字符输出流
-
public int write(int n){} public int write(String str){} public int write(char[] c){}
-
- Reader:字符输入流
文件字符流
- FileReader
-
public int read(char[] c) //从流中读取多个字符,将读入内容存入c数组,返回实际读到的字符数;如果达到文件的尾部,则返回-1。
-
- FileWriter
-
public void write(String str) //一次写多个字符,将b数组中所有字符,写入输出流。
-
FileReader
import java.io.FileReader; /** * 使用FileReader读取文件 */ public class Demo02 { public static void main(String[] args) throws Exception { //创建FileReader文件字符输入流 FileReader fr = new FileReader("d:\\hello.txt"); //读取字符 //单个读取 // int date = 0; // while ((date= fr.read())!=-1){ // System.out.println((char) date); // } // System.out.println(); char[] buf=new char[1024]; int count=0; while ((count=fr.read(buf))!=-1){ System.out.println(new String(buf,0,count)); } //关闭 fr.close(); System.out.println("执行完毕"); } }
FileWriter
import java.io.FileWriter; /** * 使用FileWriter写入文件 */ public class Demo03 { public static void main(String[] args) throws Exception { //1创建FileWrite对象 FileWriter fw = new FileWriter("d:\\write.txt"); //写入 for (int i = 0; i < 10; i++) { fw.write("Java\n"); fw.flush(); } //关闭 fw.close(); System.out.println("执行完毕"); } }
实战
import java.io.FileReader; import java.io.FileWriter; /** * 使用FileReader和FileWriter复制文本文件,不能复制图片等二进制文件。 * 使用字节流复制任意文件 */ public class Demo04 { public static void main(String[] args) throws Exception { //创建对象 FileWriter writer = new FileWriter("d:\\write.txt"); FileReader reader = new FileReader("d:\\hello.txt"); //复制文件 // int date=0; // while ((date= reader.read())!=-1){ // writer.write(date); // } char[] buf = new char[1024]; int count=0; while ((count= reader.read(buf))!=-1){ writer.write(new String(buf,0,count)); } writer.flush(); //关闭 reader.close(); writer.close(); System.out.println("复制完毕"); } }
字符缓冲流
- 缓冲流:BufferedReader/BufferedWriter
- 高校读写。
- 支持输入换行符。
- 一次写一行、读一行
BufferedReader
import java.io.BufferedReader; import java.io.FileReader; /** * 使用BufferedReader字符缓冲流读取文件 */ public class Demo05 { public static void main(String[] args) throws Exception{ //1创建缓冲流 FileReader fr = new FileReader("d:\\hello.txt"); BufferedReader br = new BufferedReader(fr); //2读取 //2.1read()读取 // char[] buf = new char[1024]; // int count=0; // while ((count=br.read(buf))!=-1){ // System.out.println(new String(buf,0,count)); // } //2.2readLine()读取 String line = null; while ((line=br.readLine())!=null){ System.out.println(line); } System.out.println(); //关闭 br.close(); System.out.println("执行完毕"); } }
BufferedWriter
import java.io.BufferedWriter; import java.io.FileWriter; /** * 使用BufferedWriter写入数据。 */ public class Demo06 { public static void main(String[] args) throws Exception{ //创建对象 FileWriter fw = new FileWriter("d:\\buffer.txt"); BufferedWriter bw = new BufferedWriter(fw); //写入数据 for (int i = 0; i < 10; i++) { bw.write("java");//写入java bw.newLine();//写入一个换行符 Windows \r\n Linux \n bw.flush();//刷新 } //关闭IO流 bw.close(); System.out.println("执行完毕"); } }
打印流
- PrintWriter:
- 封装了print()/println()方法,支持写入后换行。
- 支持数据原样打印。
import java.io.PrintWriter; /** * 演示PrintWriter的使用 */ public class Demo07 { public static void main(String[] args) throws Exception{ //创建对象 PrintWriter pw = new PrintWriter("d:\\print.txt"); //写入数据 pw.println(97); pw.println(true); pw.println(3.14); pw.println('c'); //关闭 pw.close(); System.out.println("打印完毕"); } }
转换流
- InputStreamReader/OutputStreamWriter
- 可将字节流转换为字符流。
- 可以设置字符编码方式。
InputStreamReader
import java.io.FileInputStream; import java.io.InputStreamReader; /** * 使用InputStreamReader读取文件,指定使用的编码 */ public class Demo01 { public static void main(String[] args) throws Exception{ //创建对象 FileInputStream fis = new FileInputStream("d:\\write.txt"); InputStreamReader isr = new InputStreamReader(fis,"utf-8");//要保证编码与解码方式一致,否则出现乱码 //读取文件 //单个 int date = 0; while ((date=isr.read())!=-1){ System.out.print((char) date); } System.out.println(); //关闭 isr.close(); System.out.println("执行完毕"); } }
OutputStreamWriter
import java.io.FileOutputStream; import java.io.OutputStreamWriter; /** * 使用OutputStreamWriter写入文件,指定编码 */ public class Demo02 { public static void main(String[] args) throws Exception{ //创建OutputStreamReader对象 FileOutputStream fos = new FileOutputStream("d:\\output.txt"); OutputStreamWriter osw = new OutputStreamWriter(fos, "gbk"); //写入文件 for (int i = 0; i < 10; i++) { osw.write(97); osw.write("你好"); osw.write("word\n"); osw.flush(); } //关闭 osw.close(); System.out.println("执行完毕"); } }
这篇关于Java-IO流2的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-30java最新版本是什么,有什么特性?-icode9专业技术文章分享
- 2024-11-30[开源]27.8K star!这款 Postman 替代工具太火了!
- 2024-11-30Gzip 压缩入门教程:轻松掌握文件压缩技巧
- 2024-11-29开源工具的魅力:让文档管理更“聪明”
- 2024-11-29Release-it开发入门教程
- 2024-11-29Rollup 插件入门教程:轻松掌握模块打包
- 2024-11-29从零到一,产品经理如何玩转项目管理和团队协作
- 2024-11-29如何通过精益生产管理工具帮助项目团队实现精准进度控制?
- 2024-11-29低代码应用开发课程:新手入门与基础教程
- 2024-11-29入门指南:全栈低代码开发课程