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. 如何免费访问Google?

    访问Google方法(以Mac为例) 1.替换hosts文件中的内容,文件链接如下: https://github.com/racaljk/hosts 2.下载Google浏览器,链接如下: http ...

  2. ARM基础知识

    ARM处理器模式: 模式可以理解为 工作环境. 异常模式:SVC管理模式. FIQ 快速中断模式 . IRQ中断模式.Abort中止.Undef 未定义模式: 正常模式:System系统模式. Use ...

  3. NET中MSMQ的使用----附例子

    目录 一:MSMQ的一些理论上的知识 二:队列类型(Queue Type) 三:安装消息队列 四:在C#中Messagequeue class 五:MSMQ-发送消息到远程专用队列 六:例子   一. ...

  4. 职业卖家淘宝美工教程,掌握技能无师自通 学到的不只是PS(共81节)附素材【无水印版】

    职业卖家淘宝美工教程,掌握技能无师自通 学到的不只是PS(共81节)附素材[无水印版]设计传说出品的专业课程是我们资深培训讲师精心录制的,只有视频教程和常用必备的插件,其他绝不掺和,如果你是职业卖家, ...

  5. 在opencv3中实现机器学习之:利用逻辑斯谛回归(logistic regression)分类

    logistic regression,注意这个单词logistic ,并不是逻辑(logic)的意思,音译过来应该是逻辑斯谛回归,或者直接叫logistic回归,并不是什么逻辑回归.大部分人都叫成逻 ...

  6. 我的权限系统设计实现MVC4 + WebAPI + EasyUI + Knockout(三)图形化机构树

    一.前言 组织机构是国内管理系统中很重要的一个概念,以前我们基本都是采用数据列表的形式展现,最多只是采用树形列表展现.虽然够用,但是如果能做成图形化当然是最好不过了.这里我不用任何图形控件,就用最原始 ...

  7. C#基础之lock

    1.lock的本质 实现线程同步的第一种方式是我们经常使用的lock关键字,它将包围的语句块标记为临界区,这样一次只有一个线程进入临界区并执行代码.下面第一段的几行代码是关于lock关键字的使用方式, ...

  8. php 正则表达式捕获组与非捕获组

    熟练掌握正则表达式是每个程序员的基础要求,对于每个初学者来说会被正则表达式一连串字符弄得头晕眼花.博主便会如此,一直对正则表达式有种莫名的恐惧.近来看到另一位博友写的 <php正则表达式> ...

  9. iOS--SDAutolayout宽度自适应

    #pragma mark - UIScrollView 内容竖向自适应.内容横向自适应方法 @interface UIScrollView (SDAutoContentSize) /** 设置scro ...

  10. iOS -- 给model赋值时走了[self setValuesForKeysWithDictionary:dic]不走setvalue: forked:

    这是一个小坑, 看看你的BaseModel的便利构造器的方法: + (__kindof BaseModel *)modelWithDic:(NSDictionary *)dic { return [[ ...