JAVA_IO_文件读取

来源:互联网 发布:mac网络偏好设置在哪 编辑:程序博客网 时间:2024/03/28 22:15
package com.IO_File;import java.io.*;/** * @author 菊丿外人 * 功能:读取文件内容 * 通过File对象我们可以读取文件或者文件夹得属性,如果需要读取文件的内容数据 * 需要用到IO流 * IO流解决问题,解决设备与设备之间的数据传输问题。 内存--->硬盘  硬盘--->内存 * IO流技术: *  * IO流分类: * 流入按照数据的流向划分: * 输入流 * 输出流 * 判断使用是输入流还是输出流的依据:以当前程序作为参照物,观察数据是流入 * 还是流出,如果是流入是输入流,反之也成立 *  * 如果按照处理的单位划分: * 字节流:字节流读取的都是文件中二进制数据, *     读取到二进制数据不会经过任何处理 * 字符流:字符流读取到数据是以字符为单位的, *    字符流也是读取文件中的二进制数据, *    不过会把这些二进制数据转换成我们能识别的字符 *      字符流 = 字节流 + 解码 *  */public class File_2 {public static void main(String[] args) throws IOException {// TODO 自动生成的方法存根//输入字节流//读取方式一:无法得到完整文件的数据//1、找到目标文件File file  = new File("D:/50464/a.txt");//2、建立数据的输入通道FileInputStream fileInputStream = new FileInputStream(file);//3、读取文件中的数据int content= fileInputStream.read();//read( )读取一个数据字节,把读到的数据返回System.out.println("读到的内容是"+content);//关闭资源,实际上就是释放资源fileInputStream.close();//读取方式二:慢//while((content = fileInputStream.read())!=-1){//System.out.println("读到的内容是"+(char)content);//}//读取方式三:使用缓冲数组  确定:无法读取完整一个文件的数据FileInputStream fileInputStream2 = new FileInputStream(file);//建立缓冲字节数组,读取文件的数据byte[] buf1 = new byte[2000];int length1 = fileInputStream2.read(buf1);//数据已经读取到byte数组中System.out.println(length1);//使用字节数组构建字符串String string1 = new String(buf1,0,length1);System.out.println(string1);System.out.println(string1.length());fileInputStream2.close();//读取方式四:使用缓冲数组,配合数组一起读取FileInputStream fileInputStream3 = new FileInputStream(file);byte[] buf2 = new byte[4];//存储读取到的数据int length2=0;while((length2=fileInputStream3.read(buf2))!=-1){System.out.println(new String(buf2,0,length2));}}}

0 0
原创粉丝点击