java io 笔记一:RandomAccessFile(随机访问) 类
2011-04-27 18:43
483 查看
欢迎技术交流。 QQ:138986722
跟着计划、今天学习了很多内容、相信忘记的几率很大、所以留下笔记:
不得不感叹、网络的力量、但是有时候又忍不住想骂、算了吧!随它去、
传智播客、赞一个、下面是他们网络视频教程的地址:
看了你会忍不住的说一句:"牛"!
我以前怎么没发现呢! o(︶︿︶)o ! 悔啊~~~白白浪费了那么多的光阴!
地址:http://www.itcast.cn/video
跟着计划、今天学习了很多内容、相信忘记的几率很大、所以留下笔记:
package iotest; import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; import java.util.Date; import bean.Emp; public class IoTest { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { /*通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。 * 注意“//”这里为什么需要两个反斜杠呢、因为“/”是特殊字符需要转义 */ File file = new File("hzw//1.txt"); //判断文件是否存在 if(file.exists()){ //删除文件 file.delete(); } /*当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。 * 注意、是文件、而不是文件夹 */ file.createNewFile(); /*创建此抽象路径名指定的目录。 *当且仅当已创建目录时,返回 true;否则返回 false */ //file.mkdir(); /*创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。 * 注意,此操作失败时也可能已经成功地创建了一部分必需的父目录。 * 当且仅当已创建目录以及所有必需的父目录时,返回 true;否则返回 false */ //file.mkdirs(); //打印文件名称 System.out.println("File Name:"+file.getName()); //打印路径名称 System.out.println("File Path:"+file.getPath()); //打印此抽象路径名的绝对路径名字符串 System.out.println("File abs Path:"+file.getAbsolutePath()); //打印此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。 System.out.println("File Parent:"+file.getParent()); //打印该文件存不存在 System.out.println(file.exists()?"存在":"不存在"); //打印该文件可不可读 System.out.println(file.canRead()?"可读":"不可读"); //打印该文件是不是目录 System.out.println(file.isDirectory()?"是目录":"不是目录"); //打印此抽象路径名表示的文件最后一次被修改的时间。 lastModified方法返回的是Long类型 System.out.println("File last Modi:"+new Date(file.lastModified())); /* * 存入三条员工信息、每条员工信息为两个字段(姓名,年龄) * 在取出员工信息、先取出第二条员工信息、在去除第一条员工信息、最后取出第三条员工信息 * 注意是从文件中取 */ //调用写入方法 randomAccessFileW(file); //调用读取方法 randomAccessFileR(); } /** * RandomAccessFile(随机访问)写入信息 * @param file 文件实例对象 * @throws IOException 异常类型 */ public static void randomAccessFileW(File file) throws IOException{ //构造3条员工信息 Emp e1 = new Emp("fd中文sa",23); Emp e2 = new Emp("fd国语hsa",24); Emp e3 = new Emp("f汉字dsa",25); /* * 创建从中读取和向其中写入("r"字母为读、"w"字母为写)的随机访问文件流,该文件具有指定名称。 */ RandomAccessFile ra = new RandomAccessFile("hzw//1.txt","rw"); /*另外一种方法为 * 创建从中读取和向其中写入("r"字母为读、"w"字母为写)的随机访问文件流,该文件由 File 参数指定。 */ //RandomAccessFile ra = new RandomAccessFile(file,"rw"); /* * write()方法 :将 b.length 个字节从指定 byte 数组写入到此文件,并从当前文件指针开始。 * getBytes方法:将字符串转换成byte数组。 */ //ra.write(e1.getName().getBytes()); /* writeChars方法:按字符序列将一个字符串写入该文件。 * 按字符序列将一个字符串写入该文件。每个字符均写入数据输出流, * 类似于使用 writeChar 方法。写入从文件指针的当前位置开始。 */ ra.writeChars(e1.getName()); /* * 按四个字节将 int变量值写入该文件、先写高字节。 */ ra.writeInt(e1.getAge()); ra.writeChars(e2.getName()); ra.writeInt(e2.getAge()); ra.writeChars(e3.getName()); ra.writeInt(e3.getAge()); //关闭流 ra.close(); } /** * RandomAccessFile(随机访问)读取信息 * @throws IOException 异常类型 */ public static void randomAccessFileR() throws IOException{ //定义接收员工姓名的变量 String name = ""; //定义接收read方法返回的数据字节 //int len = 0; Emp e = new Emp(); //定义员工姓名(字节)byte数组 //byte[] buf = new byte[e.getLen()]; RandomAccessFile rw = new RandomAccessFile("hzw//1.txt", "r"); /* skipBytes方法 * 尝试跳过输入的 n个字节以丢弃跳过的字节。 * 此方法可能跳过一些较少数量的字节(可能包括零)。 * 这可能由任意数量的条件引起;在跳过 n 个字节之前已到达文件的末尾只是其中的一种可能。 * 此方法从不抛出 EOFException。返回跳过的实际字节数。如果 n 为负数,则不跳过任何字节。 * * */ rw.skipBytes(e.getLen()*2 + 4);//从当前的文件指示器位置在跳转12个字节 /* read方法 * 从此文件中读取一个数据字节。以整数形式返回此字节,范围在 0 到 255 (0x00-0x0ff)。如果尚无输入可用,将阻塞此方法。 * 返回:下一个数据字节,如果已到达文件的末尾,则返回 -1。 * 也就是返回到底读取了多少个字节读取几个字节就返回几 */ //len = rw.read(buf); //构造员工姓名 //name = new String(buf,0,len); for (int i = 0; i < e.getLen(); i++) { /* readChar方法:从此文件读取一个字符。 * 此方法从该文件的当前文件指针开始读取两个字节。如果按顺序读取的字节为 b1 和 b2、 * 其中 0 <= b1, b2 <= 255、则结果将等于: (char)((b1 << 8) | b2)在读取了这两个字节、 * 检测到流的末尾或者抛出异常前,此方法一直阻塞 */ name += rw.readChar(); } //trim方法是去掉字符串中那些不可显示的字符(空格、控制字符等) System.out.println("name:"+name.trim()+"年龄:"+rw.readInt()); /* seek方法 * 设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入操作。 */ rw.seek(0) ; //绝对定位跳转、定位到文件中的第几个字节处(如:0文件开始处) // len = rw.read(buf); // name = new String(buf,0,len); name =""; for (int i = 0; i < e.getLen(); i++) { name += rw.readChar(); } /* readInt方法 * 从此文件读取一个有符号的 32 位整数。 */ System.out.println("name:"+name.trim()+"年龄:"+rw.readInt()); /* * 当读完第一条用户信息时、文件指示器的位置已经移动到了第二条员工信息的开始处。 */ rw.skipBytes(e.getLen()*2 + 4); //从当前的文件指示器位置在跳转12个字节(跳转第二条员工信息) // len = rw.read(buf); // name = new String(buf,0,len); name = ""; for (int i = 0; i < e.getLen(); i++) { name += rw.readChar(); } System.out.println("name:"+name.trim()+"年龄:"+rw.readInt()); //关闭流 rw.close(); } }
不得不感叹、网络的力量、但是有时候又忍不住想骂、算了吧!随它去、
传智播客、赞一个、下面是他们网络视频教程的地址:
看了你会忍不住的说一句:"牛"!
我以前怎么没发现呢! o(︶︿︶)o ! 悔啊~~~白白浪费了那么多的光阴!
地址:http://www.itcast.cn/video
相关文章推荐
- java io 笔记一:RandomAccessFile(随机访问) 类
- java io 笔记一:RandomAccessFile(随机访问) 类
- Java基础知识强化之IO流笔记63:随机访问流RandomAccessFile
- JavaIO之RandomAccessFile随机访问文件
- java编程笔记16 随机访问文件类RandomAccessFile
- JavaIO之RandomAccessFile随机访问文件
- Java 文件随机访问类-RandomAccessFile
- java: 随机访问流RandomAccessFile
- JAVA学习笔记(三十五)- 随机读写文件 RandomAccessFile
- Java之文件的随机访问和读写RandomAccessFile
- java IO RandomAccessFile的写入和随机读取
- Java IO操作——简单了解RandomAccessFile随机读写文件操作类的使用
- Java IO流->处理流->“随机访问” 的方式:RandomAccessFile
- Java RandomAccessFile随机访问类
- java 管道流PipedInputStream,PipedInputStream和随机访问文件 RandomAccessFile
- Java笔记(四)随机存取文件流RandomAccessFile
- 学习笔记之JavaIO中的文件处理——File和RandomAccessFile
- Java之RandomAccessFile(随机访问文件)
- JAVA高级视频_IO输入与输出02、03 RandomAccessFile 学习笔记
- 【JAVA IO】_RandomAccessFile笔记