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 ...
随机推荐
- 静态时序分析(static timing analysis) --- 时序路径
时序分析工具会找到且分析设计中的所有路径.每一个路径有一个起点(startpoint)和一个终点(endpoint).起点是设计中数据被时钟沿载入的那个时间点,而终点则是数据通过了组合逻辑被另一个时间 ...
- struts2中简单的文件上传
2016-08-31 一. 文件上传 利用commons-fileupload-1.2.1.jar实现简单的上传文件,首先在页面上填写表单,记得加上enctype="multip ...
- jQuery 遍历 - slice() 方法
实例 选中所有段落,然后将所选内容缩减为只包含第一和第二个段落: $("p").slice(0, 2).wrapInner(""); 亲自试一试 定义和用法 s ...
- Quartz.net打造信息抽取器
由于最近的一个项目需要定时抽取特定XML信息,然后保存到数据库,最后通过WebApi把手机端要使用的方法给暴露出来,所以去研究了一下Quartz.net.由于项目很小,我没用到Autofac,Repo ...
- 20155226田皓宇关于优秀技能经验以及c语言学习感悟和对JAVA的展望
读老师文章后关于一项优秀技能的经验有感 1.首先我自我剖析认为,我是没有哪一个方面能做到强于身边90%的人的,我只能说有些方面略强于身边的人.比如唱歌.办公软件的应用(word.excel)等.但我不 ...
- 配置sonar、jenkins进行持续审查
本文以CentOS操作系统为例介绍Sonar的安装配置,以及如何与Jenkins进行集成,通过pmd-cpd.checkstyle.findbugs等工具对代码进行持续审查. 一.安装配置sonar ...
- DLL中调用约定和名称修饰(一)
DLL中调用约定和名称修饰(一) 调用约定(Calling Convention)是指在程序设计语言中为了实现函数调用而建立的一种协议.这种协议规定了该语言的函数中的参数传送方式.参数是否可变和由谁来 ...
- 从士兵到程序员再到SOHO程序员
2013年9月13日,我从就职了一年半的S公司正式离职,并开始了我梦寐以求的“SOHO程序员”之路. 这对于我来说,是一次人生道路上的重要选择,在这里,我想分享一下我是如何选择了这条道路的,同时也是对 ...
- [bzoj 2005][NOI 2010]能量采集(容斥原理+递推)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2005 分析:首先易得ans=∑gcd(x,y)*2+1 然后我就布吉岛了…… 上网搜了下题解, ...
- 编写高质量代码改善C#程序的157个建议[C#闭包的陷阱、委托、事件、事件模型]
前言 本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html .本文主要学习记录以下内容: 建议38.小心闭包中的陷阱 建议39.了解委托的实质 建议40 ...