随机访问文件类
创始人
2024-01-28 23:11:50

RandomAccessFile类创建的流与前面的输入、输出流不同。RandomAccessFile类既不是输入流类InputStream的子类,也不是输入流类OutputStream的子类。

随机cessfile类创建对象为一。。。流个流流流流既既可以可以,也作源作源作源作源作源作源可以可以作为作为作为目的地目的地目的地。。。。当当当想对对一个个个个读读读写写写写写操作操作操作这个流读取文件的数据,也可以通过这个流在文件中写入数据。

RandomAccessFile 类的两个构造方法如下。

  1. RandomAccessFile(String name?String mode):参数名称用来确定一个文件名,给出创建的流源(也是流的目标的地方)。参数模式取“r”(只读)或“rw”(可读/写),决定创建的流向文件的访问权。
  2. RandomAccessFile(File file?String mode):参数file是一个文件对象,给出创建的流的来源(也是流的目标的地方)。参数模式取“r”(只读)或“rw”(可读/写) ),决定创建对文件的访问权限。创建对象时捕获获得IOException异常。

RandomAccessFile流对文件的读/写方式比前面学过的使用顺序读/写方式的文件输入、输出流更为灵活。例如,RandomAccessFile类中有一个方法可以查找, RandomAccessfile流流文件中/写位置位置,其中参数参数参数/写/写/写/写位置,即位置,即位置,即即,即即即距离距离距离文件开开开头头头数目数目。另外另外另外/写位置。

RandomAccessFile 类的常用方法如下。

  • getFilePointer():获取当前流在文件中的读/写位置。
  • length():获取文件的长度。
  • readByte():从文件中读取一个字节。
  • readDouble():从文件中读取一个双精度浮点值(8个字节)。
  • readlnt():从文件中读取一个int值(4个字节)。
  • readLine():从文件中读取一个文本行。
  • readUTF():从文件中读取一个UTF字符串。
  • seek(long a):确定当前位置在文件中的读/写位置。
  • write(byte b[]):写b。length个字节文件。
  • writeDouble(double v):向文件写入一个双精度浮点值。
  • writelnt(int v):向文件写入一个int值。
  • writeUTF(String s):写入一个UTF字符串。

1】】小说已成为的趋势趋势趋势趋势趋势趋势趋势趋势趋势趋势趋势趋势许多许多许多同同同同同创建一一部部部小说当当当当当当当4 部分小说,在小说的内容页面 9-8.jsp 选择一部分小说的名称,然后链接到 continueWrite.jsp 页面。

contunwrite.jsp页面了已有的内容内容内容内容内容内容内容内容该页提交提交提交提交提交为false,使该页面同时一次只能响应一个用户的请求,其他用户必须排队等候。

9-8.jsp 的代码如下:

 
  1. <%@page contentType="text/html;charset=utf-8"%>
  2. <%@page import="java.io.*"%>
  3. <%
  4. String str=response.encodeURL("continueWrite.jsp");
  5. %>
  6. 选择你想续写小说的名字:

  7. " method=post name=form>
  8. 精彩故事赏析
  9. 火热的夏天
  10. 秋天的收获
  11. 冬天的大雪

continueWrite.jsp 的代码如下:

 
  1. <%@page contentType="text/html;charset=utf-8"%>
  2. <%@page import="java.io.*"%>
  3. <%@page info="story"%>
  4. 小说已有内容:

  5. <%
  6. String str=response.encodeURL("continue.jsp");
  7. %>
  8. <%--获取用户提交的小说的名字--%>
  9. <%
  10. String name=(String)request.getParameter("R");
  11. if(name==null)
  12. name=" ";
  13. byte c[]=name.getBytes("utf-8");
  14. name=new String(c);
  15. session.setAttribute("name",name);
  16. String dir=getServletInfo();
  17. File storyFileDir=new File(dir);
  18. storyFileDir.mkdir();
  19. File f=new File(storyFileDir,name);
  20. //列出小说的内容
  21. try
  22. {
  23. RandomAccessFile file=new RandomAccessFile(f,"r");
  24. String temp=null;
  25. while((temp=file.readUTF())!=null)
  26. {
  27. byte d[]=temp.getBytes("utf-8");
  28. temp=new String(d);
  29. out.print("
    "+temp);
  30. }
  31. file.close();
  32. }
  33. catch(IOException e){}
  34. %>
  35. 请输入续写的新内容:

  36. " method=post name=form>

continue.jsp 的代码如下:

 
  1. <%@page contentType="text/html;charset=utf-8"%>
  2. <%@page isThreadSafe="false"%>
  3. <%@page import="java.io.*"%>
  4. <%@page info="story"%>
  5. <%!
  6. String writeContent(File f,String s)
  7. {
  8. try
  9. {
  10. RandomAccessFile out=new RandomAccessFile(f,"rw");
  11. out.seek(out.length()); //定位到文件的末尾
  12. out.writeUTF(s);
  13. out.close();
  14. return "内容已成功写入到文件";
  15. }
  16. catch(IOException e)
  17. {
  18. return "不能写入到文件";
  19. }
  20. }
  21. %>
  22. <%--获取用户提交的小说的名字--%>
  23. <%
  24. String name=(String)session.getAttribute("name");
  25. byte c[]=name.getBytes("utf-8");
  26. name=new String(c);
  27. //获取用户续写的内容
  28. String content=(String)request.getParameter("messages");
  29. if(content==null)
  30. content=" ";
  31. String dir=getServletInfo();
  32. File storyFileDir=new File(dir);
  33. storyFileDir.mkdir();
  34. File f=new File(storyFileDir,name);
  35. String message=writeContent(f,content);
  36. out.print(message);
  37. %>

9-8.jsp、continueWrite.jsp、continue.jsp页面的运行效果如图1所示。


a) 9-8.jsp 的运行效果


b) continueWrite.jsp 的运行效果


c) continue.jsp 的运行效果

图1 运动效果

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
平遥古城在哪 平遥古城基本现状 城垣恢宏,雉堞连云市井街巷,店肆林立四合院落,青砖瓦屋这里是平遥古城历经千年沧桑而古朴宛然,风姿依旧...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
平遥古城在哪 平遥古城基本现状 城垣恢宏,雉堞连云市井街巷,店肆林立四合院落,青砖瓦屋这里是平遥古城历经千年沧桑而古朴宛然,风姿依旧...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...