RandomAccessFile流指向文件时,不刷新文件。

其中seek(long a)用来定位RandomAccessFile流的读写位置,其中参数a确定读写位置距离文件开头的字节个数.

other.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<%@page import="java.io.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'other.jsp' starting page</title>
</head> <body>
<%
//dat为数据流格式,改为txt会出现乱码,这里如果直接用txt也会出现乱码
File file=new File("C:\\Users\\X550V\\Desktop","cc.txt");
if(!file.exists()){
//这里的代码用于解决输入流乱码时,不用时可以注释掉
file.createNewFile();
out.print("文件创建成功");
byte d[]="新年快乐".getBytes();//将字符串转换为字节,使用机器默认的编码方式,也可以在括号里修改
OutputStream ou=new FileOutputStream(file);
ou.write(d);
ou.close();
}
RandomAccessFile inAndOut=null;
int data[]={1,2,3,4,5,6,7,8,9,10};
char c[]={'你','好','世','界'};
String str[]={"玉","天","恒","我喜欢青檀","0000","zzzz"};
try{
inAndOut=new RandomAccessFile(file,"rw"); //int类型
/* for(int i=0;i<data.length;i++){
inAndOut.writeInt(data[i]);
}
for(long i=data.length-1;i>=0;i--){
//一个Int类型的数据占四个字节
inAndOut.seek(i*4);
out.print(inAndOut.readInt());
} */ //char类型,可输入中文
/* for(int i=0;i<c.length;i++){
inAndOut.writeChar(c[i]);
}
for(long i=0;i<c.length;i++){
//一个char占两个字节
inAndOut.seek(i*2);
out.print(inAndOut.readChar());
} */ //String类型,可输入中文
/* for(int i=0;i<str.length;i++){
inAndOut.writeChars(str[i]);
}
for(long i=0;i<6;i++){
//一个String的汉字,数字,字母都是两个字节,所以i*2
inAndOut.seek(i*2);
//str.length=6,所以只能输出到第六个字:欢
out.print(inAndOut.readChar());
out.print(inAndOut.getFilePointer()+"<br>");//获取流的当前读写位置
}
out.print("<br>"+str.length); */ //解决输入流乱码问题
long length=inAndOut.length();
long position=0;
inAndOut.seek(position);//将读取位置定位到文件的起始
while(position<length){
String info=inAndOut.readLine();
byte b[]=info.getBytes("iso-8859-1");
//如果机器的默认编码是gb2312,则info=new String(b);这样写也行
info=new String(b,"gb2312");
position=inAndOut.getFilePointer();
out.print(info);
}
}
catch(IOException e){
out.print(e);
}
%>
</body>
</html>

MyEclipse------随机流(能读也能写数据)的更多相关文章

  1. ReentrantReadWriteLock三个线程读数据,三个线程写数据

    /*** * 三个线程读数据,三个线程写数据 * */ public class ReadWriteLockTest { public static void main(String[] args) ...

  2. 【ElasticSearch】ES 读数据,写数据与搜索数据的过程

    ES读数据的过程: 1.ES客户端选择一个node发送请求,该请求作为协调节点(coordinating node): 2.corrdinating node 对 doc id 对哈希,找出该文档对应 ...

  3. Spring-boot+Spring-batch+hibernate+Quartz简单批量读文件写数据用例

    本文程序集成了Spring-boot.Spring-batch.Spring-data-jpa.hibernate.Quartz.H2等.完整代码在Github上共享,地址https://github ...

  4. HDFS 读/写数据流程

    1. HDFS 写数据流程 客户端通过 Distributed FileSystem 模块向 NameNode 请求上传文件, NameNode 检查目标文件是否已存在,父目录是否存在: NameNo ...

  5. Django数据操作F和Q、model多对多操作、Django中间件、信号、读数据库里的数据实现分页

    models.tb.objects.all().using('default'),根据using来指定在哪个库里查询,default是settings中配置的数据库的连接名称. 外话:django中引 ...

  6. C#多线程:使用ReaderWriterLock类实现多用户读/单用户写同步

    摘要:C#提供了System.Threading.ReaderWriterLock类以适应多用户读/单用户写的场景.该类可实现以下功能:如果资源未被写操作锁定,那么任何线程都可对该资源进行读操作锁定, ...

  7. Hbase写数据,存数据,读数据的详细过程

    Client写入 -> 存入MemStore,一直到MemStore满 -> Flush成一个StoreFile,直至增长到一定阈值 -> 出发Compact合并操作 -> 多 ...

  8. USB系列之四:向U盘上写数据

    在<USB系列之三>中,我们实现了一系列的SCSI命令,在这个系列中,我们要实现向U盘上写扇区的命令,所以,本文相对比较容易,更多地是给出一个实现的源程序. 在<USB系列之三> ...

  9. laravel(lumen)配置读写分离后,强制读主(写)库数据库,解决主从延迟问题

    在Model里面加上下面这句,强制读主(写)库数据库,解决主从延迟问题. public static function boot() { //清空从连接,会自动使用主连接 DB::connection ...

随机推荐

  1. 28Spring_的事务管理_银行转账业务加上事务控制_基于注解进行声明式事务管理

    将applicationContext.xml 和 AccountServiceImpl 给备份一个取名为applicationContext2.xml 和 AccountServiceImpl2.j ...

  2. 客户端缓存(Client Cache)

    通常在服务器端大家都已经做了很多缓存的工作,ASP.NET CACHE也好MemeryCache也好却总是忽略了客户端缓存. 因为大家都知道不管哪个client都会缓存已经访问过的站点,但是浏览器缓存 ...

  3. [win]AD域组策略wifi自动配置

    http://wenku.baidu.com/link?url=MC950wliAZNeVUJ2M6Y1VTi5faqo7kG374fyBjW57r0qyLJkBZLg5ypiql4RFywQ8q7y ...

  4. Response.Redirect("x.aspx);跳转后session为null的解决方法

    通常我们做登陆的时候都是登录成功后为管理员保存一些信息,一般都会写类似下面的代码 if(登录成功) { Session["xx"] = "user"; Resp ...

  5. An Introduction to Interactive Programming in Python (Part 1) -- Week 2_1 练习

    # Practice Exercises for Functions # Solve each of the practice exercises below. # 1.Write a Python ...

  6. listview的头布局把我的ACTION_DOWN事件给吃了.....

    因为头布局的viewpager自己处理点击事件 public boolean dispatchTouchEvent(MotionEvent ev) { switch (ev.getAction()) ...

  7. 20135202闫佳歆--week 9 期中总结

    期中总结 前半学期的主要学习内容是学习mooc课程<Linux内核分析>以及课本<Linux内核设计与实现>. 所涉及知识点总结如下: 1. Linux内核启动的过程--以Me ...

  8. 关于那些难改的bug

    多年的测试经验中,经常发现有这么一种现象:总有些提了的bug不能顺利的被修复.这些bug往往有4个走向: 1.在被发现的版本中最终被解决,但中途花费较多周折. 2.有计划的在后续的版本中被解决. 3. ...

  9. Jenkins进阶系列之——16一个完整的JENKINS下的ANT BUILD.XML文件

    网上看见的,确实很全,该有的基本都覆盖到了.自己拿来稍微改改就可以用了. 注:property中的value是你自己的一些本地变量.需要改成自己的 <?xml version="1.0 ...

  10. Maven(一)简介和基本安装使用

    简介 如今用于项目管理和自动化构建的东东用的比较多的,比如: eclipse中用到的ant 现今流行的android studio中用到的gradle 这里将介绍另一种工具——maven (也可以用来 ...