MyEclipse------随机流(能读也能写数据)
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------随机流(能读也能写数据)的更多相关文章
- ReentrantReadWriteLock三个线程读数据,三个线程写数据
/*** * 三个线程读数据,三个线程写数据 * */ public class ReadWriteLockTest { public static void main(String[] args) ...
- 【ElasticSearch】ES 读数据,写数据与搜索数据的过程
ES读数据的过程: 1.ES客户端选择一个node发送请求,该请求作为协调节点(coordinating node): 2.corrdinating node 对 doc id 对哈希,找出该文档对应 ...
- Spring-boot+Spring-batch+hibernate+Quartz简单批量读文件写数据用例
本文程序集成了Spring-boot.Spring-batch.Spring-data-jpa.hibernate.Quartz.H2等.完整代码在Github上共享,地址https://github ...
- HDFS 读/写数据流程
1. HDFS 写数据流程 客户端通过 Distributed FileSystem 模块向 NameNode 请求上传文件, NameNode 检查目标文件是否已存在,父目录是否存在: NameNo ...
- Django数据操作F和Q、model多对多操作、Django中间件、信号、读数据库里的数据实现分页
models.tb.objects.all().using('default'),根据using来指定在哪个库里查询,default是settings中配置的数据库的连接名称. 外话:django中引 ...
- C#多线程:使用ReaderWriterLock类实现多用户读/单用户写同步
摘要:C#提供了System.Threading.ReaderWriterLock类以适应多用户读/单用户写的场景.该类可实现以下功能:如果资源未被写操作锁定,那么任何线程都可对该资源进行读操作锁定, ...
- Hbase写数据,存数据,读数据的详细过程
Client写入 -> 存入MemStore,一直到MemStore满 -> Flush成一个StoreFile,直至增长到一定阈值 -> 出发Compact合并操作 -> 多 ...
- USB系列之四:向U盘上写数据
在<USB系列之三>中,我们实现了一系列的SCSI命令,在这个系列中,我们要实现向U盘上写扇区的命令,所以,本文相对比较容易,更多地是给出一个实现的源程序. 在<USB系列之三> ...
- laravel(lumen)配置读写分离后,强制读主(写)库数据库,解决主从延迟问题
在Model里面加上下面这句,强制读主(写)库数据库,解决主从延迟问题. public static function boot() { //清空从连接,会自动使用主连接 DB::connection ...
随机推荐
- poj 3352
Road Construction Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 11215 Accepted: 5575 De ...
- react native 底部按钮切换
在react native 中底部按钮的切换 主要的是运用的是<TabBarNavigator/>这个组件,具体的代码实现如下: render() { return ( <T ...
- LINUX SSH显示中文乱码
ssh登陆后,执行: export LANG=zh_CN.gb2312就可以显示中文了.编辑/etc/sysconfig/i18n 将LANG="zh_CN.UTF-8" 改为 L ...
- Google protocol buffer在windows下的编译
在caffe框架中,使用的数据格式是google的 protocol buffer.对这个不了解,所以,想简单学习一下.简单来说,Protocol Buffer 是一种轻便高效的结构化数据存储格式,可 ...
- Linux及安全——程序破解
Linux及安全——程序破解 由于我的Ubuntu的vi有故障,所以用kaili做. 运行原程序 1.反汇编代码,查看 objdump -d login 2.修改代码 vi login 转换为16进制 ...
- iOS——关于打印控件
20.UIPrintFormatterUIPrintFormatter时打印格式化的抽象基类:展示了传统的可打印的内容对象可以跨页边界.由于打印格式化,打印系统,可以自动打印与打印格式化的内容相关联的 ...
- mongo里面根据对象字段的ID查询 db.Photo.find({'owner.$id':ObjectId('xxxx')}) , 并且使用forEach循环修改查询的数据
var ones = db.Photo.find({'owner.$id':ObjectId("5344f0dab7c58e8e098b4567")}) db.Photo.find ...
- php检测php.ini是否配制正确
运行命令行 php -d display_startup_errors=1 -d error_reporting=-1 -d display_errors -c "C:\path-to-ph ...
- 工作的思考十七:工作中容易犯的错误 - Delay
其实IT是一个很严谨的行业,不管是从代码角度还是从日常的工作分配都是按计划来的. 从今年年初到现在,在我的工作中出现了两次“Delay”,第一次不以为然,虽然上司也找过我谈话,但没意识到问题的严重性. ...
- BootStrap网格布局
如何使用BootStrap样式 BootStrap与其他的开源库类似,直接引用它的css样式文件就可以使用了. <link rel="stylesheet" href=&qu ...