首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java IO详解(七)------随机访问文件

/article/1012576 Java IO 对象流(序列化与反序列化):https://cloud.tencent.com/developer/article/1012578 1、什么是 随机访问文件流...该类的实例支持读取和写入随机访问文件随机访问文件的行为类似于存储在文件系统中的大量字节。...如果在读/写模式下创建随机访问文件,则输出操作也可用; 输出操作从文件指针开始写入字节,并将文件指针提前到写入的字节。 写入隐式数组的当前端的输出操作会导致扩展数组。...而这个随机访问文件流我们可以再文件的任意地方写入数据,也可以读取任意地方的字节。...一个文件是有N个字节数组成,那么我们可以通过设置读取或者写入的偏移量,来达到随机读取或写入的目的。 我们先看看Java 各数据类型所占字节数: ?

1.8K80
您找到你想要的搜索结果了吗?
是的
没有找到

文件随机读写

文件随机读写 文件随机读写 定义:读写操作时,不按照数据在文件中先后次序依次读写,而是可以对文件中任意位置的数据进行访问,在读写文件中特定数据时效率较高。...10.4.1 文件位置标记 为对文件读写的数据进行控制,系统为每个文件设置一个文件读写位置标记(简称文件位置标记),指示“要读写的下一个数据的位置”。...文件位置标记的定位 文件位置标记的定位 (1)void rewind(FILE *fp) 把fp指向文件文件位置标记定位到文件的开头位置,并清除文件结束标记和错误标记。...向文件尾方向偏移10个字节 fseek(fp, -10L, CUR_END); //文件尾开始,向文件头方向偏移10个字节 (3) long ftell(FILE *fp):返回fp所指向文件文件位置标记的值...例:在二进制文件integer.dat中存放有若干个整数,计算文件中奇数位置(第1、3、5、…)上的整数的和。

52320

java 唯一随机数_JAVA随机

⑤UUID类 静态方法:static UUID randomUUID():获取类型 4(伪随机生成的)UUID 的静态工厂。 使用加密的强伪随机数生成器生成该 UUID。...(Math.random()*(max-min)+min); ②Random类 使用java.util.Random类来产生一个随机数发生器,这个也是我们在j2me的程序里经常用的一个取随机数的方法。...+1) + min; ③ThreadLocalRandom 在多线程下,使用 java.util.Random 产生的实例来产生随机数是线程安全的,但深挖 Random 的实现过程,会发现多个线程会竞争同一...多线程下获取[1,100)的随机数,如下代码 import java.util.concurrent.ThreadLocalRandom; public class ThreadLocalRandomDemo...,还可以将其对某些数取模,就能限制随机数的范围;此方式在循环中同时产生多个随机数时,会是相同的值,有一定的局限性!

3K20

java uuid 随机数_Java随机数和UUID

Java随机数和UUID# Java随机数 在Java项目中通常是通过Math.random方法和Random类来获得随机数,前者通过生成一个Random类的实例来实现。...此类产生的是一组伪随机数流,通过使用 48 位的种子,利用线性同余公式产生。在Java中,随机数的产生取决于种子,随机数和种子之间的关系遵从以下两个规则: 种子不同,产生不同的随机数。...Java UUID UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。...如果应用只是在局域网中使用,也可以使用退化的算法,以IP地址来代替MAC地址--Java的UUID往往是这样实现的(当然也考虑了获取MAC的难度)。...UUID Version 4:随机UUID 根据随机数,或者伪随机数生成UUID。

2.8K30

10.4 随机读写数据文件

01 文件位置标记及其定位 1、随机访问不是按数据在文件中的物理位置次序进行读写,而是可以对任何位置上的数据进行访问。...2、文件位置标记 为了对读写进行控制,系统为每个文件设置了一个文件读写位置标记(简称文件位置标记或文件标记),用来指示“接下来要读写的下一个字符的位置”。...4、如果是顺序写文件,则每写完一个数据后,文件位置标记顺序向后移一个位置,然后在下一次执行写操作时把数据写入指针所指的位置。 5、对流式文件既可以进行顺序读写,也可以进行随机读写。...关键在于控制文件的位置标记。 6、文件位置标记的定位 可以强制使文件位置标记指向人们指定的位置。 (1)用rewind函数使文件位置标记指向文件开头。...(3)用ftell函数测定文件位置标记的当前位置 ftell函数的作用是得到流式文件文件位置标记的当前位置。 02 随机读写 1、需要注意的是应当保证在磁盘中存在所指定的文件“stu.dat”。

7063429

Linux文件随机抽取N行

有时候需要从大文件随机抽取N行出来进行模拟,但是用python或者别的语言感觉不太方便,linux下直接分割感觉会更快捷。...一般可以考虑以下的方法: 1. shuf shuf -n100 filename # 从文件随机选取100行 2. sort sort -R filename | head -n100 -R参数是将文件随机顺序...3. awk awk是一个处理文件神器,可以像下面这么写(别的写法也可实现): awk 'BEGIN{srand()} {print rand()"\t"$0}' filename | sort -nk...,必须写在BEGIN中才能正常运行;rand()是产生0到1之间的随机数。...第一列是产生的随机数。sort -nk 1是根据第一列排序,运行后输出: ? 因为种子不一样,所以结果与上图不同。 最后选取想要的行数,然后输出除了第一列的内容就可以了。

8.2K20

java 设置随机数种子_java随机数种子怎么设置

java随机数种子怎么设置 引导语:Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。...以下是小编整理的java随机数种子怎么设置,欢迎参考阅读!...java设置随机数种子教程: 一、在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个...二、在java.util这个包里面提供了一个Random的类,我们可以新建一个Random的对象来产生随机数,他可以产生随机整数、随机float、随机double,随机long,这个也是我们在j2me的程序里经常用的一个取随机数的...,就可以把他限制在一个范围之内啦 其实在Random的默认构造方法里也是使用上面第三种方法进行随机数的产生的 对于方法二中的Random类有以下说明: java.util.Random类有两种方式构建方式

1.4K10

Java随机

Java中主要提供了两种方式产生随机数,分别为调用Math类的random()方法和Random类提供的产生各种数据类型随机数的方法。...,Java中还提供了一种可以获取随机数的方式,那就是java.util.Random类。...可以通过实例化一个Random对象创建一个随机数生成器。...Random r=new Random(); 以这种方式实例化对象时,Java编译器以系统当前时间作为随机数生成器的种子,因为每时每刻的时间不可能相同,所以产生的随机数将不同,但是如果运行速度太快,也会产生两次运行结果相同的随机数...返回一个随机整数 public int nextInt(int n): 返回大于等于0且小于n的随机整数 public long nextLong(): 返回一个随机长整型值 public

1.1K40

Java实现随机人名抽取

- 使用数组、方法、循环等实现人名的随机抽取 ## 前言:         我们今天来写一个随机抽取用户名字的一个小程序,     首先我们思考这个需求他需要的条件,要抽取用户的名     字,...就要先有一个容器,来储存用户名字的数据,其次     要有随机的功能实现,因为要随机,所以还要有一个寻     找的功能,挨个寻找的功能需要循环来实现,再想一下     有寻找,找到了还继续往后找嘛...###### 2.实现随机的功能         这里实现随机的功能可以使用Math方法语句来实现     因为这是JDK里提前定义好的方法,可以直接拿来用,     直接新建new一个新的方法,...###### 4.if、else与length         一个if与else的嵌套,确定随机生成的数字是否大于     1,若小于1则直接终止程序,length函数,表示数组的长     度...break;          }          num = (int) (Math.random() * 3);       } //将数组下标设置成随机数,就可以实现人名的随机抽取

1.2K10

Java文件的简单读写、随机读写、NIO读写与使用MappedByteBuffer读写

本篇内容包括: 简单文件读写 随机访问文件读写 NIO文件读写-FileChannel 使用MappedByteBuffer读写文件 简单文件读写 FileOutputStream 由于流是单向的,简单文件写可使用...随机访问文件读写 RandomAccessFile相当于是FileInputStream与FileOutputStream的封装结合,即可以读也可以写,并且RandomAccessFile支持移动到文件指定位置处开始读或写...JNIEXPORT void JNICALL Java_java_io_RandomAccessFile_seek0(JNIEnv *env, jobject this...(fd, pos, SEEK_SET) == -1) { JNU_ThrowIOExceptionWithLastError(env, "Seek failed"); } } Java_java_io_RandomAccessFile_seek0...使用MappedByteBuffer读写文件 MappedByteBuffer是Java提供的基于操作系统虚拟内存映射(MMAP)技术的文件读写API,底层不再通过read、write、seek等系统调用实现文件的读写

2K20

Java随机数探秘

1 前言 一提到 Java 中的随机数,很多人就会想到 Random,当出现生成随机数这样需求时,大多数人都会选择使用 Random 来生成随机数。...在 JDK1.7 之后,Java 提供了更好的解决方案 ThreadLocalRandom,接下来,我们一起探讨下这几个随机数生成器的实现到底有何不同。...2 Random Random 这个类是 JDK 提供的用来生成随机数的一个类,这个类并不是真正的随机,而是伪随机,伪随机的意思是生成的随机数其实是有一定规律的,而这个规律出现的周期随着伪随机算法的优劣而不同...,后者如果我们传入 10,那么他会求出 [0,10) 之间的 int 类型的随机数,左闭右开。...和上面 32 位不同,因为在 nextInt() 方法中可以获取到随机数可能是负数,而 nextInt(int bound) 规定只能获取到 [0,bound) 之前的随机数,也就意味着必须是正数,预留一位符号位

1.5K50

java按字节、字符、行、随机读取文件,并设置字符编码格式

首先介绍可能用到的java类: inputStream:是字节输入流的所有类的超类,是一个抽象类;返回0-225内的字节值,如果没有字节可以读取则返回-1; FileInputStream:读取文件中的字节...; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader...; import java.io.InputStream; import java.io.InputStreamReader; import javassist.expr.NewArray; public...System.out.println("----------字节读取文件前1024个字节内容的方法-------------"); readFileByBytes(fileName);//读取文件前...);//读取文件中所有字节的方法 System.out.println("----------字节以每次读取512个字节,循环读取文件内容-------------"); readFileRoundBy512

1.3K30
领券