跟着计划、今天学习了很多内容、相信忘记的几率很大、所以留下笔记:


1. package
2.    
3. import
4. import
5. import
6. import
7.    
8. import
9.    
10. public class
11.    
12. /** 
13.      * @param args 
14.      * @throws IOException  
15.      */
16. public static void main(String[] args) throws
17.            
18. /*通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。 
19.          * 注意“//”这里为什么需要两个反斜杠呢、因为“/”是特殊字符需要转义 
20.          */
21. new File("hzw//1.txt");   
22.            
23. //判断文件是否存在  
24. if(file.exists()){   
25. //删除文件  
26.             file.delete();   
27.         }   
28.            
29. /*当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。 
30.          * 注意、是文件、而不是文件夹 
31.          */
32.         file.createNewFile();   
33.            
34. /*创建此抽象路径名指定的目录。 
35.          *当且仅当已创建目录时,返回 true;否则返回 false  
36.          */
37. //file.mkdir();  
38.            
39. /*创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。 
40.          * 注意,此操作失败时也可能已经成功地创建了一部分必需的父目录。 
41.          * 当且仅当已创建目录以及所有必需的父目录时,返回 true;否则返回 false  
42.          */
43. //file.mkdirs();  
44.    
45. //打印文件名称  
46. "File Name:"+file.getName());   
47.            
48. //打印路径名称  
49. "File Path:"+file.getPath());   
50.            
51. //打印此抽象路径名的绝对路径名字符串  
52. "File abs Path:"+file.getAbsolutePath());   
53.            
54. //打印此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。  
55. "File Parent:"+file.getParent());   
56.            
57. //打印该文件存不存在  
58. "存在":"不存在");   
59.            
60. //打印该文件可不可读  
61. "可读":"不可读");   
62.            
63. //打印该文件是不是目录  
64. "是目录":"不是目录");   
65.            
66. //打印此抽象路径名表示的文件最后一次被修改的时间。 lastModified方法返回的是Long类型  
67. "File last Modi:"+new
68.            
69.            
70. /* 
71.          * 存入三条员工信息、每条员工信息为两个字段(姓名,年龄) 
72.          * 在取出员工信息、先取出第二条员工信息、在去除第一条员工信息、最后取出第三条员工信息 
73.          * 注意是从文件中取 
74.          */
75.            
76. //调用写入方法  
77.         randomAccessFileW(file);   
78.            
79. //调用读取方法  
80.         randomAccessFileR();   
81.            
82.            
83.     }   
84.        
85. /** 
86.      * RandomAccessFile(随机访问)写入信息 
87.      * @param file 文件实例对象 
88.      * @throws IOException  异常类型 
89.      */
90. public static void randomAccessFileW(File file) throws
91.            
92. //构造3条员工信息  
93. new Emp("fd中文sa",23);   
94. new Emp("fd国语hsa",24);   
95. new Emp("f汉字dsa",25);   
96.            
97. /* 
98.          * 创建从中读取和向其中写入("r"字母为读、"w"字母为写)的随机访问文件流,该文件具有指定名称。 
99.          */
100. new RandomAccessFile("hzw//1.txt","rw");   
101.            
102. /*另外一种方法为 
103.          * 创建从中读取和向其中写入("r"字母为读、"w"字母为写)的随机访问文件流,该文件由 File 参数指定。 
104.          */
105. //RandomAccessFile ra = new RandomAccessFile(file,"rw");  
106.            
107. /* 
108.          * write()方法 :将 b.length 个字节从指定 byte 数组写入到此文件,并从当前文件指针开始。 
109.          * getBytes方法:将字符串转换成byte数组。 
110.          */
111. //ra.write(e1.getName().getBytes());  
112.            
113. /* writeChars方法:按字符序列将一个字符串写入该文件。 
114.          * 按字符序列将一个字符串写入该文件。每个字符均写入数据输出流, 
115.          * 类似于使用 writeChar 方法。写入从文件指针的当前位置开始。 
116.          */
117.         ra.writeChars(e1.getName());   
118.            
119. /* 
120.          * 按四个字节将 int变量值写入该文件、先写高字节。 
121.          */
122.         ra.writeInt(e1.getAge());   
123.         ra.writeChars(e2.getName());   
124.         ra.writeInt(e2.getAge());   
125.         ra.writeChars(e3.getName());   
126.         ra.writeInt(e3.getAge());   
127.            
128. //关闭流  
129.         ra.close();   
130.     }   
131.        
132. /** 
133.      * RandomAccessFile(随机访问)读取信息 
134.      * @throws IOException 异常类型 
135.      */
136. public static void randomAccessFileR() throws
137.            
138. //定义接收员工姓名的变量  
139. "";   
140.            
141. //定义接收read方法返回的数据字节  
142. //int len = 0;  
143.            
144. new
145.            
146. //定义员工姓名(字节)byte数组  
147. //byte[] buf = new byte[e.getLen()];  
148.            
149. new RandomAccessFile("hzw//1.txt", "r");   
150.            
151. /* skipBytes方法 
152.          * 尝试跳过输入的 n个字节以丢弃跳过的字节。 
153.          * 此方法可能跳过一些较少数量的字节(可能包括零)。 
154.          * 这可能由任意数量的条件引起;在跳过 n 个字节之前已到达文件的末尾只是其中的一种可能。 
155.          * 此方法从不抛出 EOFException。返回跳过的实际字节数。如果 n 为负数,则不跳过任何字节。 
156.          *  
157.          *  
158.          */
159. 2 + 4);//从当前的文件指示器位置在跳转12个字节  
160.            
161. /* read方法 
162.          * 从此文件中读取一个数据字节。以整数形式返回此字节,范围在 0 到 255 (0x00-0x0ff)。如果尚无输入可用,将阻塞此方法。 
163.          * 返回:下一个数据字节,如果已到达文件的末尾,则返回 -1。 
164.          *       也就是返回到底读取了多少个字节读取几个字节就返回几 
165.          */
166. //len = rw.read(buf);  
167.            
168. //构造员工姓名  
169. //name = new String(buf,0,len);  
170.            
171. for (int i = 0; i < e.getLen(); i++) {   
172.                
173. /* readChar方法:从此文件读取一个字符。 
174.              * 此方法从该文件的当前文件指针开始读取两个字节。如果按顺序读取的字节为 b1 和 b2、 
175.              * 其中 0 <= b1, b2 <= 255、则结果将等于: (char)((b1 << 8) | b2)在读取了这两个字节、 
176.              * 检测到流的末尾或者抛出异常前,此方法一直阻塞 
177.              */
178.             name += rw.readChar();   
179.         }   
180.            
181. //trim方法是去掉字符串中那些不可显示的字符(空格、控制字符等)  
182. "name:"+name.trim()+"年龄:"+rw.readInt());   
183.            
184. /* seek方法 
185.          * 设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入操作。 
186.          */
187. 0) ; //绝对定位跳转、定位到文件中的第几个字节处(如:0文件开始处)  
188. //      len = rw.read(buf);  
189. //      name = new String(buf,0,len);  
190. "";   
191. for (int i = 0; i < e.getLen(); i++) {   
192.             name += rw.readChar();   
193.         }   
194.            
195. /* readInt方法 
196.          * 从此文件读取一个有符号的 32 位整数。 
197.          */
198. "name:"+name.trim()+"年龄:"+rw.readInt());   
199.            
200. /* 
201.          * 当读完第一条用户信息时、文件指示器的位置已经移动到了第二条员工信息的开始处。 
202.          */
203. 2 + 4); //从当前的文件指示器位置在跳转12个字节(跳转第二条员工信息)  
204. //      len = rw.read(buf);  
205. //      name = new String(buf,0,len);  
206. "";   
207. for (int i = 0; i < e.getLen(); i++) {   
208.             name += rw.readChar();   
209.         }   
210. "name:"+name.trim()+"年龄:"+rw.readInt());   
211.            
212. //关闭流  
213.         rw.close();   
214.     }   
215.        
216.    
217. }

不得不感叹、网络的力量、但是有时候又忍不住想骂、算了吧!随它去、



转载于:https://blog.51cto.com/hzw2312/748316