-
BufferedInputStream、BufferedOutputStream使用缓冲区来进行数据写入写出操作,提高性能。对比其他方式输入输出: FileInputStream/FileOutputStream 每次一个字节的读写 DataInputStream/DataOutputStream 每次一个类型数据的读写。如:一次写入一个int类型的数据,相当于一次写入四个字节。 BufferedInputStream/BufferedOutputStream 每次读写一个缓冲区大小的数据。每次写入时必须调用实例的flush()方法来清空缓冲区。查看全部
-
DataInputStream、DataOutputStream是专门为读取写入数据类型而包装的类。包括,int、bouble、long、char、UTF-8字符串等,默认write写入是以UTF-16be的编码方式写入。。查看全部
-
写文件: write方法只能写第八位,写一个int型需要写四次。如: int a = 10; out.write(a >>> 24); out.write(a >>> 16); out.write(a >>> 8); out.write(a);查看全部
-
1、牢记循环读文件的方式 2、byte类型8位,int类型32位。byte转int时为避免数据转换错误,通过&0xff将高24位清零查看全部
-
InputStream、OutputStream输入输出流接口的使用查看全部
-
RandomAccessFile读写文件识记。难点:右移符号的使用、二进制查看全部
-
FileOutput fop = new FileOutputStream(File file); //创建文件写入操作,如果不存在,系统自动创建文件 FileInputStream fip = new FileInputStream(File file); //创建文件写出操作 文件复制时,需要创建源文件和目的文件,通过读取源文件的内容向目的文件中写入 可使用数组进行文件的存储如: byte[] buf = new byte[可写入长度//1*1024];功能类似转换器,能提高效率 对于大文件 可使用while循环 例: FileInputStream fip = new FileInputStream(文件路径); byte[] buf = new byte[20*1024]; int b = 0; while((b = fip.read(buf,0,buf.length))!=-1){ for(int i = 0; i < b;i++){ System.out.println(Integer.toHexString(buf &0xff) + " "); } } 其中 oxff是去掉字节前面的24位0操作查看全部
-
FileInputStream in = new FileInputStream(fileName); byte[] buf = new byte[20 * 1024]; //从in中批量读取字节,放入到buf这个字节数组中,从第0个位置开始放,最多放buf.length个,返回的是读到的字节的个数 int bytes = in.read(buf,0,buf.length);//一次性读完,说明字节数组足够大 in.read(byet[],int,int)返回的是读到的字节的个数。是一个int 返回值。 读文件内容 常用的 标准的 方式。 FileInputStream in = new FileInputStream(fileName); byte[] buf = new byte[20 * 1024]; int byetes = 0; int j = 1; while((bytes = in.read(buf,0,buf.length))!=-1){ for(int i = 0; i < bytes; i++){ System.out.print(Integer.toHexSting(buf[i] & 0xff)+ " "); if( j++ % 10 == 0){ System.out.println(); } } }查看全部
-
inputStream的读取方法查看全部
-
RandomAccessFile类 RandomAccessFile类 是java提供的对文件内容的访问,即可以读取文件,也可以写文件。RandomAccessFile类支持随机访问文件,可以访问文件的任意位置 ********RandomAccessFile类实现步骤 (1)java文件的模型 在硬盘上的文件是byte byte byte 存储的,是数据的集合 (2)打开文件 有两种模式“rw”(读写) “r”(只读) RandomAccessFile raf = new RandomAccessFile(File对象,"rw"); 文件指针,打开文件时指针在开头 pointer = 0; (3)写方法 raf.write(int)--->只写一个字节(后8位),同时指针指向下一个位置,准备再次写入 (4)读方法 int b = raf.read()--->读一个字节 (5)关闭流 文件读写完成以后一定要关闭流(Oracle官方说明) *RandomAccessFile 类的方法 raf.getFilePointer();--->获取指针的位置 raf.writeInt(i);//写入一个int raf.seek(0);//移动指针到index的位置 raf.length();返回的是long //一次性读取,把文件中的内容都读取到字节数组中 byte[] buf = new byte[(int)raf.length()] raf.read(buf); //变成字符串,装入数组中进行输出 Arrays.toString(buf); for(byte b : buf){ //以16进制进行输出 Integer.toHexString(b&0xff)+""; } raf.close();查看全部
-
String[] filenames = file.list() //返回的是字符串数组,列出当前目录下的所有子目录和文件,不包含子目录下的内容 如果要遍历子目录下的内容就需要构造成File对象做递归操作,File提供了直接返回File对象的API File[] files = file.listFiles(); //返回的是File数组,列出当前目录下的所有子目录和文件,不包含子目录下的内容 //递归,遍历出该目录下所有文件信息,包括子目录下的文件 for(File f :files){ if(f.isDirectory){ //递归遍历该目录下的子目录的信息 listDirectory(file); } else{ System.out.pritln(file); } }查看全部
-
1、创建File文件对象 param: 文件地址 File file = new File("E:\\javaio"); or new File("E:" + File.sepatator); File.sepatator 不同系统通用分隔符 file.exists() 文件或目录是否存在 file.mkdir() 创建文件夹 file.mkdirs() 创建层级文件夹,不需要父级文件夹存在 file.isDirectory() bool 是否是一个目录 如果是返回时TRUE,不是或者不存在返回FALSE file.isFile() bool 是否是一个文件 File file2 = new File("E:\\java\\test.txt"); File file2 = new File("E:\\java","test.txt");查看全部
-
1、创建File文件对象 param: 文件地址 File file = new File("E:\\javaio"); or new File("E:" + File.sepatator); File.sepatator 不同系统通用分隔符 file.exists() 文件或目录是否存在 file.mkdir() 创建文件夹 file.mkdirs() 创建层级文件夹,不需要父级文件夹存在 file.isDirectory() bool 是否是一个目录 如果是返回时TRUE,不是或者不存在返回FALSE file.isFile() bool 是否是一个文件 File file2 = new File("E:\\java\\test.txt"); File file2 = new File("E:\\java","test.txt");查看全部
-
InputStream读的方法查看全部
-
机器上的文本文件,如果是直接创建的,就只认识ansi, 如果是粘贴过来的,则都认识 gbk:中文占用2个字节,英文占用1个字节 utf-8:中文占用3个字节,英文占用1个字节 java是双字节编码:utf-16be:中文占用2个字节,英文占用2个字节 转换成16进制输出时要与上0xff,屏蔽前面24位,取后8位 Integer.toHexString(b&0xff) 指定编码格式:byte[] bytes=s.getBytes(“指定编码”); 字节序列在转换成字符串的时候要指定编码格式: String str=new String(bytes,“指定编码”);(指定的编码格式要与字节序列指定的编码格式相同)查看全部
举报
0/150
提交
取消