day20 java 语言中的读取写入数据(一)
一、io概述
io数据流的读写功能,在实际的生活中也很常见,比如文件的上传、下载,日志的自动更新等都与io读写密切相关。io又被分为了读取数据和写入数据两个大的功能。下面就来看看读取数据的几种类。
二、读取数据的几种方式
读取数据被分为了字节流读取数据,和字符流读取数据两种。
(一):字符输入流:
1、fileReader类。是字符流读取数据
2、BufferedReader类。带有缓冲流读取数据
(二):字节输入流:
1、FileInputStream类。是字节流读取数据
2、BufferedInputStream。是带有缓冲流读取数据
三、具体实例
(一)字符流读数据
//io数据流输入读取【FileReader】 package www.com.c1; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class Io02 { public static void main(String[] args) { try { //1、创建使用字符流实例 FileReader fileReader = new FileReader("D:\\zs.txt"); //2、定义变量接收读取到的 int temp = 0; //3、定义字符来转换。 char c; //4、循环打印 while ((temp = fileReader.read())!=-1) { c =(char) temp; System.out.print(c); } //5、关闭数据流 fileReader.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
//io数据流输入读取【BufferedReader】 package www.com.c1; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class Io04 { public static void main(String[] args) { try { //1、创建实例, BufferedReader buf = new BufferedReader(new FileReader("D:\\zs.txt")); //2、定义字符串来接收 String temp; //3、使用readline来读取数据,注意他是读取的一行字符串 while ((temp = buf.readLine())!=null) { System.out.println(temp); } //4、关闭数据流 buf.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
(二)字节流读数据
package www.com.c1; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; //io数据流输入读取【FileInputStream】 //1、FileInputStream:字节流读取文件:一般读取一些图片、视频等等。 // 字符流读取文件:一般都是一些文字。 public class Io01 { public static void main(String[] args) { //使用第一种方式【字节流】读取文件。 try { //1步:创建输入字节流实例,注意后面的文件存放的位置路径 FileInputStream inputStream01 = new FileInputStream("D:\\zs.txt"); //2步、定义变量来接受每一次读取到的数据 int tmp; //4、定义变量来转换打印读到的是什么。 char ok; //3、使用while循环来读取文件的内容:核心步骤 while ((tmp=inputStream01.read())!=-1) { ok = (char) tmp;//使用强制类型转换 System.out.print(ok); } //5、关闭数据流 inputStream01.close(); } catch (FileNotFoundException e) { System.out.println("文件不存在!请在改路径下建立该文件!"); } catch (IOException e) { e.printStackTrace(); } //使用第二种方式读取文件。 【使用字节流读取中文】 try { //1、创建读取文件的实例 FileInputStream inputStream = new FileInputStream(new File("D:\\zs.txt")); //2、定义数组来控制每次读取到的数据量【类似于缓存】 byte[] b = new byte[1024]; //3、定义变量来接收读取到的数据 int a; //4、使用read[byte]方法读取数据 while ((a = inputStream.read(b))!=-1) { //5、创建字符串来接收处理读取到的数据, String s = new String(b, 0, a); //注意各个参数,参数一:代表每次读取的最大数据量 //参数二:代表读取数据的偏移量,就是从哪个字节开始读取剩下的数据 //参数三:读取字节的数据。 //6、输出 System.out.println(s); } //7、关闭数据流 inputStream.close(); } catch (FileNotFoundException e) { System.out.println("文件不存在"); } catch (IOException e) { e.printStackTrace(); } } }
//io数据流输入读取【BufferedInputStream】 package www.com.c1; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class Io03 { public static void main(String[] args) { try { //1、创建BufferedInputStream实例,只能传一个输入流,所以在创建的时候都会创建输入流的父类或者子类。 BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:\\zs.txt")); //2、定义变量接收读取到的 int temp = 0; //3、定义字符来转换。 char c; //4、循环打印 while ((temp = bis.read())!=-1) { c =(char) temp; System.out.print(c); } //5、关闭数据流 bis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
四、结束语
都这儿关于使用IO流读取文件的常用4个方法就说完了。注意一下在这4个实例中的应用。
时间: 2024-12-20 21:53:51