RandomAccessFile的简单使用

花1K内存实现高效I-O的RandomAccessFile类 花1K内存实现高效I-O的RandomAccessFile类 自己搜搜这个关键字. 我主要是用来优化Android上多线程断点下载的写文件效率 RandomAccessFile是操作硬盘的,比操作内存的数据慢了几百万倍, 所有有人做出优化,我特上传代码 立即下载

概念:
RandomAccessFile是java IO一个比较特殊的类,跟InputStream和OutPutStream不同,继承自Object,实现了DataInput, DataOutput ,可以任意的访问文件的任何地方。
RandomAccessFile对象包含了一个指针,可以标识当前流的读写位置,并且可以前后移动。

重要方法:
void seek(long pos):设置此文件开头测量到的文件指针的偏移量,在该位置发生下一个读取或者写入的操作。偏移量的设置可能会超出文件末尾。偏移量的设置超过文件末尾不会改变文件的长度。只有在偏移量的设置超出文件末尾的情况下对文件进行写入才会改变其长度。

读操作:

public class TestRandomAccess {

    public static void main(String[] args) throws IOException {
        RandomAccessFile r = new RandomAccessFile("C:/Users/Administrator/Desktop/cc.txt", "r");//"r"表示为读
        r.seek(4);
        byte[] b = new byte[100];
        int len = 0;
        System.out.println(r.length());//文件的长度
        while((len=r.read(b,0,100))!=-1){
            System.out.println(new String(b,0,len));
        }
        if(null!=r){
            r.close();
        }
    }

}

读写操作

public class TestRandomRW{
 public static void main(String[] args) throws Exception{
 //"rw"以读写方式打开指定文件,不存在就创建新文件
  RandomAccessFile raf=new RandomAccessFile("C:/admin/temp.txt","rw");
  raf.seek(raf.length());
  raf.write("hello world!".getBytes());//在文件末尾加上内容
  raf.close();
 }
}

如果想在文件中间加内容,就把指针移动到该处,把指针后的内容暂时存在临时文件,再在指针位置写内容,最后将临时文件的内容拼接接回来。

Linux CentOS7文件系统(/dev/var)的容量扩充 原因是之前安装docker后,再想安装Nessus,系统说home、var文件系统的内存都不够。 阅读详情

相关推荐

生产环境下oracle19c rac恢复节点2

现状:目前节点1数据库集群服务处于正常,节点2服务器由于系统故障无法恢复,确认系统重装。目标:不影响业务的情况下,重新把节点2添加回集群中。

sqlora的专栏 865

java中如何对特大文件做断点续传RandomAccessFile(笔记、(20))

java、文件上传、断点续传RandomAccessFile

weixin_58033123的博客 345

手把手教你用Ollama & AnythingLLM搭建AI知识库,无需编程,跟着做就行!

本地运行大模型耗资源,需要选择较小的模型作为基础模型。在终端中运行时可能会出现 CUDA 错误,表示显存不足,导致提供的端口失效。中文支持不够完善。\3. 文中提到的技术软件工具有:Ollama、Chatbox、Open WebUI、向量数据库、嵌入模型、本地模型 Gemma、AnythingLLM。

2401_86435672的博客 1万+

使用Java的RandomAccessFile类实现大文件分片上传功能

本文介绍了使用Java的RandomAccessFile类实现大文件分片上传的方法。通过设置文件切片大小和路径,并计算切片数量,我们可以循环读取并上传每个切片。使用RandomAccessFile类,精确读取指定部分的文件数据。通过构建上传URL并发送切片数据,实现了高效上传和降低内存消耗。这种方法提高了上传效率,适用于处理大文件上传。通过本文,你将了解如何使用RandomAccessFile类处理大文件的分片上传。

shyの个人笔记 3053

机械革命重装Win11详细教程

通过以上步骤,你可以在机械革命电脑上成功重装Windows 11。虽然整个过程可能看起来有些复杂,但只要你按照步骤逐一进行,就能够顺利完成安装并享受到全新的操作系统带来的便利和性能提升。希望本文能够帮助到你,如果你有任何问题或疑问,请随时联系我们的技术支持团队。

mmoo_python的博客 3130

三维点云转深度图

点云投影过程是将三维点云数据转化为二维图像坐标的关键步骤,它的实现涉及到相机内外参数的计算,包括相机的内部参数(如焦距和主点)和外部参数(如相机位置和方向)。具体来说,可以通过将每个点的三维坐标转换为相机坐标系下的坐标,然后使用相机内部参数和外部参数来计算在二维图像中的坐标。接着计算每个点的深度值,将深度值映射到像素值上,最后创建深度图像并将深度值赋给对应的像素值。这里需要注意的是,在将深度值映射到像素值上时,需要将像素值转换为 uchar 类型,否则在将深度值赋给像素值时会出现类型不匹配的错误。

点云兔子的博客 3171

JavaIO流RandomAccessFile详细用法

上次介绍了非流式部分的File类,这次来介绍RandomAccessFile类,这个类对文件操作的功能十分强大,相比于其他只能读或者只能写的文件类,这个类既能对文件进行读也能对文件进行写,RandomAccessFile把随机访问的文件对象看作存储在文件系统中的一个大型 byte 数组,然后通过指向该 byte 数组的索引或者文件指针在该数组任意位置读取或写入任意数据。(如果这个文件不存在,则会自动创建一个同名文件)。4.rwd:将文件的内容同步更新到磁盘,但不修改文件的数据。

LorraineWen的博客 691

Python中的join函数的用法

从语法、实例、应用三方面详尽地介绍join函数

阿黎逸阳的博客 2万+

通过RandomAccessFile对文件 删除,修改,新增

RandoAccessFile类 该类通过提供指针的方式操作文件,文件可以看作byte数据,通过指针来修改对于位置的数据 按一定条件删除文件中 一组数据 原理是:用后面有效的数据覆盖掉要删除的数据,最后让文件从末尾丢弃掉删除数据的长度 RandoAccessFile.setLength(long length) 来设置文件的大小 原来文件 通过覆盖数据的方法实现删除功能:覆盖后 RandoAccessFile.setLength(long length) 后得到最终文件 例如删除f1.txt文件中 d

qq249121208的博客 3135

10步掌握!跨国企业在MySQL中实现数据主权的秘诀 vs. 传统方法,你选对了吗?

首先,我们要明确“数据主权”这一概念。简单来说,它指的是国家对其境内产生的所有类型的数据拥有绝对控制权。这意味着即使数据被存储在国外服务器上,只要该数据来源于某国,那么该国政府就有权对其进行监管。对于跨国公司来说,这就要求它们必须严格遵循不同国家关于数据保护的规定,如欧盟的GDPR、美国的《云法案》以及中国的《网络安全法》等。

java专栏 714

【华为OD机试真题】4、字符统计及重排 | 机试真题+思路参考+代码解析(C++、Java、Py)

题目描述 >给出一个仅包含字母的字符串,不包含空格,统计字符串中各个字母(区分大小写)出现的次数, 并按照字母出现次数从大到小的顺序。输出各个字母及其出现次数。 如果次数相同,按照自然顺序进行排序,且小写字母在大写字母之前

KJ.JK 3289

RandomAccessFile类使用详解(转)

1.RandomAccessFile特点 RandomAccessFile是java Io体系中功能最丰富的文件内容访问类。即可以读取文件内容,也可以向文件中写入内容。但是和其他输入/输入流不同的是,程序可以直接跳到文件的任意位置来读写数据。   因为RandomAccessFile可以自由访问文件的任意位置,所以如果我们希望只访问文件的部分内容,那就可以使用RandomAccessFile类。   与OutputStearm,Writer等输出流不同的是,RandomAccessFile类允许自由定位文件

weixin_46875212的博客 1754

Python爬虫实战:58同城租房信息分析与可视化,寻找高性价比房源

随着城市化进程加快,租房需求日益增长。58同城作为国内领先的本地生活服务平台,汇聚了大量房源信息。本教程将使用最新的Python爬虫技术获取58同城租房数据,通过数据分析与可视化揭示各区域租金水平,并运用机器学习算法找出性价比高的房源。本项目将使用异步爬虫、反爬对抗技术、数据清洗、可视化分析和机器学习建模等技术栈。

2201_76125261的博客 1279

RandomAccessFile对文件进行简单加密

思路是这样的:    找到文件将文件读取到一块缓存。再将文件中的数据按位取反。   如果想要恢复,也很简单,只需要再在原来程序的基础上再进行按位取反就可以了。  程序代码如下: ======================= import java.io.File; import java.io.FileNotFoundException; import java.io.IOEx

jinzi12345678的专栏 2241

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

RandomAccessFile简单介绍

介绍 是JAVA I/O流体系中功能最丰富的文件内容访问类,它提供了众多方法来访问文件内容。该类的主要目的是提供为读写文件提供更高的可操作性。 RandomAccessFile是Java输入/输出流体系中功能最丰富的文件内容访问类,既可以读取文件内容,也可以向文件输出数据。与普通的输入/输出流不同的是,RandomAccessFile支持跳到文件任意位置读写数据,RandomAccessFile对...

毅香雪海的博客 1082

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

RandomAccessFile类的简单使用

RandomAccessFile的简单使用

qq_42447739的博客 742

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

JAVA简单加密-RandomAccessFile应用

package tarena1801.day; import java.io.FileNotFoundException; import java.io.RandomAccessFile; import java.util.Scanner; public class Test1 { //加密解密算法:RandomAccessFile应用 public static void m

ds19920925的专栏 897

java bufferedrandomaccessfile_java的RandomAccessFile文件读写使用简单方便

package com.javabase.p1;import java.io.FileNotFoundException;import java.io.IOException;import java.io.RandomAccessFile;import javax.xml.ws.WebFault;//RandomAccessFile 文件读写使用简单方便public class TestFile ...

weixin_36212334的博客 251

RandomAccessFile简单用法

import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; public class N_randomAccess { /**RandomAccessFile * 用于读写文件的类,可以对文件的内容进行操作;而File不可以对文件的内容进行操作 * @param args */

yinzhijiezhan的专栏 620

java的RandomAccessFile文件读写使用简单方便

package com.javabase.p1; import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; import javax.xml.ws.WebFault; //RandomAccessFile 文件读写使用简单方便 public clas...

热带雨林-的博客 522

RandomAccessFile流的简单使用

package random; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; public class RandomIOImpl { public static void main...

Keeping 182

关于文件读写使用RandomAccessFile类的一些简单操作

最近接触到了一些关于文件生成以及文件内容写入的工作任务,关于文件的一些方法常用的是 java.io.File包中的一些方法。这些方法是在java1.0的时候提供的。然后在File类的注释中看到了这个包java.nio.file.Files;随后查看了一下这个包。简单了解了一下 File /** * An abstract representation of file and directory pathnames. ....... * <h3>Interoperability with {@

weixin_44168259的博客 462

RandomAccessFile类简单介绍

RandomAccessFile 是继承java.lang.Object 的一个支持到文件随

lmjssjj的专栏 679

java--RandomAccessFile简单示例--菜鸟演示

java.io.RandomAccessFile 实现了DataInput和DataOutput接口 实现随机存取,既可以做为输入,又可以实现输出 可以跳到文件中的任何一个位置输入或输出 input.seek(pos)/output.seek(pos) 获取当前文件指针所在的位置 getFilePointer() 得到的结果是相对与文件起始地址的字节数 输出输入演示代码 public clas...

qq_40948862的博客 404

Java随机流RandomAccessFile详细介绍及简单的应用

看了好多关于RandomAccessFile的文章,感觉都比较混乱,现在我来自己总结一下。 RandomAccessFile从字面意思翻译:随机通行文件 下面开始介绍一下RandomAccessFile,该类是直接继承Object的类,既可以读取文件内容,也可以向文件输出数据。 RandomAccessFile支持“随机访问”的方式,程序快可以直接跳转到文件的任意地方来读写数据。 RandomAccessFile的一个重要使用场景就是网络请求中的多线程下载及断点续传。 下面开始介绍具体用法:

m0_57640408的博客 2446

RandomAccessFile类的简单介绍,以及代码演示

RandomAccessFile类,支持对文件的读取和写入。并且可以设置写入和读取的位置。该位置主要是以字节体现。相当于该文件存储在一个大型byte[] 数组。隐含存在一个指向该数组的指针。类似于该类对象可以设置该隐含的指针位置进行对文件从任意位置开始读写。 RandomAccessFile类的构造方法。 RandomAccessFile(String name,String mode);

liuhenghui5201的专栏 1679
上一篇: shiro实现动态权限管理
下一篇: shiro学习之HashedCredentialsMatcher密码匹配过程
H阿布
博客等级 码龄12年 24粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值