关键代码:
        RandomAccessFile file = new
RandomAccessFile("temp.dat", "rw");

file.writeBoolean(true);

file.writeInt(100);

file.writeInt(12345);

file.writeInt(6789);

file.seek(5);

write(int), writeInt(int) 的区别

在java DataOutputStream 中,定义的2个方法 write(int), writeInt(int), 它们接收的参数都是 int,但却有着本质的区别。

write(int) 

write(int) 继承自父类OutputStream,接收的虽然是int, 但是它只向输出流里写一个字节。我们知道,在java中,一个int 数子是4个字节组成,write(int) 只写入int的最低位的一个字节,其它3个字节被抛弃。

例如: write(-100),

int -100  的32位二进制码为:  11111111_11111111_11111111_10011100

那么, write(-100),实际上只写了最低的8位到输出流:10011100。

writeInt(int)

writeInt(int),是把整个32位都写入输出流。

那么, write(-100),写了32位到输出流:11111111_11111111_11111111_10011100。

file.seek()

将文件游标移动到文件的任意位置,本文具体的file.seek()文件游标移动操作方法、

package Campus;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile; public class IOTest { public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
RandomAccessFile file = new RandomAccessFile("temp.dat", "rw");
file.writeBoolean(true);
file.writeInt(100);
file.writeInt(12345);
file.writeInt(6789);
try {
for (int i = 0; i < 100; i++){
file.seek(i);
System.out.println(i+":"+file.readInt());
} } catch (Exception e) {
// TODO: handle exception
System.out.println("--");
}
} }

  运行结果:

  boolean占1字节,int占4字节,从低到高排列;最后一个是结束位。

0:16777216
1:100
2:25600
3:6553600
4:1677721648
5:12345
6:3160320
7:809041920
8:956301338
9:6789
10:1737984
11:444923904
12:-2063597568
13:1 //估计是结束字符的位置
--

    public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer buffer = new StringBuffer();
int value = 18;
do {
int temp = value & 0x07;
System.out.println(temp);
buffer.append(temp);
System.out.println(value);
}while ((value >>>= 3) != 0 );
System.out.println(buffer.reverse());
}

  输出结果:

2
18
2
2
22

java IODemo的更多相关文章

  1. IO流(SequenceInputStream序列流--文件拆分与合并)

    一.文件拆分 1.将一个文件按照规定的大小进行分割成多个文件并将被分割详细信息保存至配置信息中 Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载,属性列表 ...

  2. IO流(字节流复制)01

    package ioDemo; import java.io.*; /** * IO流(字节流复制) * Created by lcj on 2017/11/2. */ public class bu ...

  3. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  4. Java基础-输入输出-2.编写IoDemo.java的Java应用程序,程序完成的功能是:首先读取text.txt文件内容,再通过键盘输入文件的名称为iodemo.txt,把text.txt的内容存入iodemo.txt

    2.编写IoDemo.java的Java应用程序,程序完成的功能是:首先读取text.txt文件内容,再通过键盘输入文件的名称为iodemo.txt,把text.txt的内容存入iodemo.txt ...

  5. 编写IoDemo.java的Java应用程序,程序完成的功能是:首先读取text.txt文件内容,再通过键盘输入文件的名称为iodemo.txt,把text.txt的内容存入iodemo.txt

    package zuoye; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExcep ...

  6. 2.编写IoDemo.java的Java应用程序,程序完成的功能是:首先读取text.txt文件内容,再通过键盘输入文件的名称为iodemo.txt,把text.txt的内容存入iodemo.txt

    package zuoye; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; ...

  7. 使用Java中的IO流,把A文件里的内容输入到B文件中

    我们先创建两个文本文件,out.txt和in.txt,在out.txt中输入"Hello World",然后使用FileInputStream把字符串读取出来,再使用FileOut ...

  8. JAVA基础学习day20--IO流二-缓冲流、字节流

    一.缓冲流 1.1.字符流的缓冲区 缓冲区的出现是为了提高IO的读写效率 对应类 BufferedReader BufferedWriter 缓冲区要结合流才可以使用 在流的基础上对流的功能进行了增强 ...

  9. Java之IO操作总结

    所谓IO,也就是Input与Output的缩写.在java中,IO涉及的范围比较大,这里主要讨论针对文件内容的读写 其他知识点将放置后续章节 对于文件内容的操作主要分为两大类 分别是: 字符流 字节流 ...

随机推荐

  1. YII2中如何自定义全局函数

    有些时候我们需要自定义一些全局函数来完成我们的工作. 方法一: 直接写在入口文件处 <?php // comment out the following two lines when deplo ...

  2. SSH Secure Shell链接Ubuntu报错Server responded "Algorithm negotiation failed"

    vim /etc/ssh/sshd_config Ciphers aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3 ...

  3. MongoDb进阶实践之九 Mongodb的备份与还原

    一.引言 前几天写了MongoDB数据库的聚合.一说到“聚合”,用过关系型数据库的人都应该知道它是一个什么东西,主要是用于对数据分类汇总和统计.大家都知道,做为DBA还有另一个重要的任务,那就是对数据 ...

  4. javascript DOM基础操作

    DOM(Document Object Model)即文档对象模型,针对HTML和XML文档的API(应用程序接口).DOM描绘了一个层次化的节点树,运行开发人员添加.移除和修改页面的某一部分.DOM ...

  5. [转]安装 Silverlight 5/silverlight4 出错的解决方法

    安装Silverlight 5时,如果 如图: 安装Silverlight 5时,如果你的VS不是英文版,那么可能会出现以下错误: Visual Studio 2010 SP1 that matche ...

  6. javascript 高级程序设计 十一

    接上一节的创建对象的模式: 原型模式: 对于prototype的理解:我们创建的函数都有一个prototype(原型)属性,这个属性是一个指针指向一个对象,而这个对象的用途是包含基于这个方法的 所有的 ...

  7. django模板语言和过滤

    一:模板组成 HTML代码 + 逻辑控制代码 逻辑代码组成格式: 使用大括号来引用变量, {{ var_name }} 二: Template和Context对象 //进入该的django的项目环境 ...

  8. Servlet会话管理二(Cookie)

    Cookie是在HTTP协议下,将服务器传递给浏览器的的少量信息保存到浏览器客户端的一种技术,通过这种技术,即使在浏览器被关闭或链接中断的情况下,用户仍可以维护Cookie中的数据. Cookie是经 ...

  9. MySQL 检索数据及提高检索速度的方法

    检索数据 mysql> SELECT [DISTINCT] 表名.列名,表名.列名,表名.列名 -- 使用通配符*表示所有列 DISTINCT表示返回不同的值 -> FROM 数据库名.表 ...

  10. wait()和sleep()的区别

    wait()是Object类的方法,当一个线程执行到wait()方法时,该线程就进入到一个和该线程相关的等待池中,同时释放了对象锁(暂时失去对象锁,wait(long timeout)超时时间到后还需 ...