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 ...
随机推荐
- WPF用ShowDialog()弹出窗体时控制该窗体的显示位置,并传值回父窗体
原文:http://blog.csdn.net/kiss0622/article/details/5852153 方法一: 1.父窗口代码 Window1.xaml.cs private void B ...
- 你会在C#的类库中添加web service引用吗?
本文并不是什么高深的文章,只是VS2008应用中的一小部分,但小部分你不一定会,要不你试试: 本人对于分布式开发应用的并不多,这次正好有一个项目要应用web service,我的开发环境是vs2008 ...
- phpmailer 参数使用说明
$AltBody--属性 出自:PHPMailer::$AltBody 文件:class.phpmailer.php 说明:该属性的设置是在邮件正文不支持HTML的备用显示 AddAddress--方 ...
- win7(X64)系统下cuda7.5和VS2013的配置
&1 安装 cuda7.5文件:链接:http://pan.baidu.com/s/1bU2zIQ 密码:nvyw &2 环境变量 注意:CUDA_PATH是安装好cuda7.5之后会 ...
- Android 动画之TranslateAnimation应用详解
TranslateAnimation比较常用,比如QQ,网易新闻菜单条的动画,就可以用TranslateAnimation实现, 通过TranslateAnimation(float fromXDel ...
- Win7 Qt4.8.5+QtCreator2.8.0+mingw配置过程
1:安装包 百度盘下载链接: Mingw: :安装步骤 1.首先安装qt creator,双击qt-creator-windows-opensource-2.8.0,注意安装目录不要有空格和特殊字符, ...
- Ubuntu连接L2TP的VPN设置
作为程序猿,FQ查资料那是经常的事情.电信不知怎么的pptp方式连接不上.蛋疼!o(╯□╰)o没有办法自己只好折腾l2tp连接方式了\(^o^)/~ 1. 添加PPA sudo apt-add-rep ...
- 玩转数据库之 Group by Grouping
有的时候我们要从数据库里把数据组织成树结构再展现到页面上 像下面这样 今天我们用Group 和Grouping实现它,并总结一下它俩. 先看一下概念,再用代码一点一点去理解它们,最后我会给出完整的代码 ...
- Yii2-Redis使用小记 - Cache
前些天简单学习了下 Redis,现在准备在项目上使用它了.我们目前用的是 Yii2 框架,在官网搜索了下 Redis,就发现了yii2-redis这扩展. 安装后使用超简单,打开 common/con ...
- Android图像格式类及图像转换方法
Android图像格式类及图像转换方法介绍 一款软件的开发和图像密切相关,特别是移动应用程序,在视觉效果等方面是至关重要的,因为这直接关系到用户的体验效果.在Android程序开发的过程中,了解存在哪 ...