关键代码:
        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. swift - 加速器/摇一摇功能

    import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoa ...

  2. 设置导航栏和TabBar标题的文字格式

    //TabBar样式 [navi.tabBarItem setTitleTextAttributes:@{NSFontAttributeName:[UIFont boldSystemFontOfSiz ...

  3. linux操作系统重启后 解决nginx的pid消失问题

    重启了linux服务器之后,进程性的 nginx -s stop后再次启动nginx -s reload ,总是会报错误nginx: [error] open() "/alidata/ser ...

  4. golang 实现延迟消息原理与方法

    实现延迟消息具体思路我是看的下面这篇文章 https://mp.weixin.qq.com/s/eDMV25YqCPYjxQG-dvqSqQ 实现延迟消息最主要的两个结构: 环形队列:通过golang ...

  5. .NET垃圾回收机制

    在.net 编程环境中,系统的资源分为托管资源和非托管资源.  对于托管的资源的回收工作,是不需要人工干预回收的,而且你也无法干预他们的回收,所能够做的只是了解.net CLR如何做这些操作.也就是说 ...

  6. js 实现的简易计算器

    <!DOCTYPE html><html lang="zh-CN"><head> <!-- <meata charset='utf- ...

  7. win10 x64中 windbg x64 安装配置符号库

    根据系统安装好x64版本,我的系统是win10 x64 ; windbg下载地址 https://developer.microsoft.com/zh-cn/windows/hardware/down ...

  8. python 截取某一天的日志,简单操作

    #!/usr/bin/python #Filename: Segmentation_log.py import re,sys def openfile(*args): try: f=open(args ...

  9. Convert 实现 pdf 和图片格式互转

    pdf 转换为图片 (注意:pdf 默认转换的是透明背景,如果转为jpg格式必须添加背景色.-background white -flatten) convert -background white ...

  10. Laravel Many to Many Polymorphic Relationship

    Many to many Polymorphic relationship is also a little bit complicated to understand. For example, i ...