精华内容
下载资源
问答
  • java-XMLStreamReader:获取字符偏移量:文件中...
    2021-03-15 00:33:23

    XMLStreamReader-> Location具有称为getCharacterOffset()的方法.

    不幸的是,Javadocs指出这是一个命名不明确的方法:它还可以返回一个字节偏移量(在实践中似乎是正确的).从文件读取时(例如),这似乎无济于事:

    Return the byte or character offset into the input source this

    location is pointing to. If the input source is a file or a byte

    stream then this is the byte offset into that stream, but if the input

    source is a character media then the offset is the character offset. (emphasis added)

    我真的需要字符偏移量;而且我很确定我会得到字节偏移量.

    (UTF-8编码)XML包含在(部分损坏的1G)文件中. [因此需要使用一个较低级别的API,除非它确实别无选择,否则不要抱怨它缺乏格式正确性].

    Javadoc说“ …输入源是字符介质…”时是什么意思:我如何强制其将输入文件视为“字符介质”,以便获得准确的(字符)偏移量而不是字节偏移量?

    等等等等:

    [我很确定这是怎么回事-当我将文件剥离(使用某些已知的高级标签)时,我丢失或丢失了几个字符-以一种不容忍的方式-我将区别最多可以删除几个多字节字符:同样,当我复制(例如在Powershell中使用“ head” /“ tail”)时,该工具似乎可以正确识别[或假定UTF-8]并可以很好地转换为据我所见,UTF-16

    更多相关内容
  • Enter The Sentence: heey Enter location: 5 String index out of range: 9 , import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedWriter; import java.io....

    I have to write a program that reads a file and inserts some text given by the user through the console window. The location in which the text is inserted should also be given through the console window.

    Below is my code, I am getting "String index out of range" after entering the sentence and offset.

    Enter The Sentence:

    heey

    Enter location:

    5

    String index out of range: 9

    import java.io.BufferedInputStream;

    import java.io.BufferedOutputStream;

    import java.io.BufferedWriter;

    import java.io.FileInputStream;

    import java.io.FileNotFoundException;

    import java.io.FileOutputStream;

    import java.io.FileWriter;

    import java.util.Scanner;

    import java.io.Writer;

    class ReadPosition{

    public static void main(String args[]) {

    try{

    FileWriter Writer =

    new FileWriter("in.txt");

    @SuppressWarnings("resource")

    BufferedWriter bufferedWriter =

    new BufferedWriter(Writer);

    Scanner input= new Scanner(System.in);

    System.out.println("Enter The Sentence: ");

    String sentence = input.nextLine();

    System.out.println("Enter location: ");

    int offset = input.nextInt();

    input.close();

    byte[] buffer = sentence.getBytes();

    int len = buffer.length;

    bufferedWriter.write(sentence, offset, len);

    }

    catch(Exception ex)

    {

    System.out.println(ex.getMessage());

    }

    }

    }

    解决方案

    The line

    bufferedWriter.write(sentence, offset, len);

    means write out len characters from sentence starting at offset in sentence.

    In other words offset is the position in the sentence not the position in the output file.

    If you want to insert text in a file you need to write code to copy the file to a new file adding the text at the correct position during the copy.

    Also you should not be using

    @SuppressWarnings("resource")

    to suppress the close missing warning - you do need to close your writer.

    展开全文
  • Hey I'm trying to open a file and read just from an offset for a certain ...I read this topic:How to read a specific line using the specific line number from a file in Java?in there it said that i...

    Hey I'm trying to open a file and read just from an offset for a certain length!

    I read this topic:

    How to read a specific line using the specific line number from a file in Java?

    in there it said that it's not to possible read a certain line without reading the lines before, but I'm wondering about bytes!

    FileReader location = new FileReader(file);

    BufferedReader inputFile = new BufferedReader(location);

    // Read from bytes 1000 to 2000

    // Something like this

    inputFile.read(1000,2000);

    Is it possible to read certain bytes from a known offset?

    解决方案

    RandomAccessFile exposes a function:

    seek(long pos)

    Sets the file-pointer offset, measured from the beginning of this file, at which the next read or write occurs.

    展开全文
  • Java IO流中偏移量是什么意思

    千次阅读 多人点赞 2019-07-18 22:20:11
    在使用Java的 IO过程中,肯定遇到过偏移量这个概念。网上也有很多人都解释过,但是有很多的人都被误导理解错了,也包括我。偏移量确实很容易理解错,刚开始我也理解错了。直到后来看BufferedOutputStream 源码的时候...

    背景

    在使用Java的 IO过程中,肯定遇到过偏移量这个概念。网上也有很多人都解释过,但是有很多的人都被误导理解错了,也包括我。偏移量确实很容易理解错,刚开始我也理解错了。直到后来看BufferedOutputStream 源码的时候就越发感觉不对劲。

    下面就详细解释一下偏移量到底什么意思。

    在 FileInputStream 中的public int read(byte b[], int off, int len)方法中第二个参数,int off 就是偏移量的意思。

    示例

    前置条件

    先在 F:\FilesExample\A.txt 文件中加入待读取的内容

    ABCDEFG
    

    使用 FileInputStream 流读取内容

    public static void main(String[] args) {
    
        String filePath = "F:\\FilesExample\\A.txt";
    
        // 创建字节输入流
        try ( FileInputStream fis = new FileInputStream(filePath)){
    
            // 创建装数据的数组
            byte[] bytes = new byte[10];
            
    		// 调用read方法读取数据
            fis.read(bytes, 2, 3);
    
    		// 打印读出来的数据
            for (int i = 0; i < bytes.length; i++) {
                System.out.println(bytes[i]);
            }
            
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    

    注意这句代码

    fis.read(bytes, 2, 3);
    

    注意这里的参数

    • 第一个参数是存放即将读出来的数据的字节数组。
    • 第二个参数是偏移量,这里先传个2。
    • 第三个参数是要读取的长度。

    参数详解

    第一个参数不用过多解释,就是存放数据的数组。

    第二个参数代表偏移量,就是有歧义的地方。

    网上的错误解释

    偏移量的意思就是,读数据的时候从上一次读的最后位置接着往下读,比如第一次读了1024个字节,那么下一次就从1025开始读
    

    这句话哪里错了?
    这句话的意思是说,偏移量是数据流的偏移量。在上一次读到某个位置后,偏移量就记录下那个位置的坐标,下一次读取的时候,接着往后读。

    如果按照这个意思来读取的话,我们传入的参数是2,也就是数据流的偏移量是2,那就该从下表为2的地方开始读,那应该跳过“A”,“B”两个字节,读取结果应该是”C“,”D“,”E“三个数据。

    我们来运行一下,结果显示:

    0
    0
    65
    66
    67
    0
    0
    0
    0
    0
    

    这里有两个地方需要注意一下

    1. 读取的字节都是ASCII码。 65代表大写字母”A“ ,66代表大写字母”B“,67代表大写字母”C“
    2. 字节数组空的位置会初始化成0。

    结果和预想的完全不一样。

    正确的解释

    其实偏移量 真正指的是这个存放数据的数组的偏移量(第一个参数)。

    使用这个解释去理解一下这个示例。

    读取3个字节(第三个参数)的数据,存放在bytes数组中(第一个参数),存放在数组中的什么位置呢?那就得看偏移量了,这里偏移量是2(第二个参数),就表示存放在数组中下标为2的位置开始,数据依次往后展开。也就是说,假设读取了两个字节的数据,就放在数组的3、4号坑(数组是从0开始的),假设读取了3个字节的数据,就放在数组的3、4、5号坑…

    总结

    Java IO流中的偏移量是指接收数据的数组(或叫缓冲区)的偏移量,并不是数据流的偏移量。


    技 术 无 他, 唯 有 熟 尔。
    知 其 然, 也 知 其 所 以 然。
    踏 实 一 些, 不 要 着 急, 你 想 要 的 岁 月 都 会 给 你。


    展开全文
  • 首先编译类文件:filehandle.java FileBuffer.java FileServer.java fileSystemAPI.java FileSystemClientAPI.java testClient.java确保所有文件都在同一目录中。 首先通过在命令提示符下输入以下内容来运行服务器...
  • Kafka的移动偏移量(JAVA Apache Kafka)

    千次阅读 2021-12-02 17:16:30
    Kafka的移动偏移量1.pom依赖2.application.properties 配置文件3. 消费者 配置自动读取4. 偏移量工具7.测试 1.pom依赖 如果是springboot项目可以不指定版本,自动匹配 <!-- ...
  • java修改文件内容

    2021-02-12 12:27:19
    项目使用到了需要将配置文件中指定内容替换为想要更新的内容,特此记下,已被后用/**** @param fileName 要修改的文件名* @param oldstr 要修改的字段* @param newStr 替换的字段*/public static Boolean ...
  • 文件分片----偏移

    2021-03-27 12:51:10
    刚开始听到文件分片这个词的时候,以为分片是和上传相关的,需要用到上传的工具才能获取的分片信息,然后查了一堆关于OSS的资料,看完后发现OSS里面根本就没有直接返回给你分片文件的工具,所有的工具都是为上传服务...
  • 使用Java下载大文件

    千次阅读 2021-02-12 09:57:22
    title: 使用Java下载大文件date: 2017-09-04 04:51:12tags: [Java]主要思路是将大文件分解成若干个小文件进行下载.本功能由两个类实现:DownLoadManager和DownloadThreadTask实现. 其中DownLoadManager类主要负责下载...
  • 如果使用的自动提交偏移量的模式,偏移量会给到kafka或者zk进行管理,其中kafka的偏移量重置给...该版本kafka不像其他版本一样,通过执行一句方便的命令就可以重置到指定的偏移量,本文给出了一种通过Java代码来重置偏
  • 使用java实现对文件的监控功能,当文件发生修改,实时获取更新内容。 1.要求对目标文件实时监控 2.按行读取文件更行内容 3.将获取内容进行落库 二、使用技术: 2.1 commons-io 使用Commons-io的monitor下的...
  • JAVA文件中追加内容(转)

    千次阅读 2021-02-25 19:41:29
    RandomAccessFile类可以实现随机访问文件的功能,可以以读写方式打开文件夹的输出流public void seek(long pos)可以将读写指针移到文件尾,参数Pos表示从文件开头以字节为单位测量的偏移位置,在该位置文件指针。...
  • 在使用Java的 IO过程中,肯定遇到过偏移量这个概念。网上也有很多人都解释过,但是有很多的人都被误导理解错了,也包括我。偏移量确实很容易理解错,刚开始我也理解错了。直到后来看BufferedOutputStream 源码的时候...
  • Java文件读写

    万次阅读 多人点赞 2019-06-07 21:17:16
    //这里是一些前期判断,我们的buffer[]数组不能为空,偏移量一开始不能比0小,要读取的字节长度也不能比0小 if ( b == null ) { throw new NullPointerException ( ) ; } else if ( off ...
  • 我正在尝试使用最新的Kafka CLI工具重置消费者偏移 .kafka-consumer-groups.bat --bootstrap-server kafka-host:9092 --group my-group --reset-offsets --to-earliest --all-topics结果我看到了这个输出:TOPIC ...
  • 格式化程序可以作用于整个文件,有限的行( --lines ),特定的偏移量( --offset ),传递到标准输出(默认)或就地更改( --replace )。 要重新格式化特定补丁中更改的行,请使用 。 注意:格式化程序的格式化...
  • 怎样用java获取到文件的hash值?

    千次阅读 2021-02-26 09:06:05
    //从文件读到buffer,最多装满buffer if (numRead > 0) { complete.update(buffer, 0, numRead); //用读到的字节进行MD5的计算,第二个参数是偏移量 } } while (numRead != -1); fis.close(); return complete....
  • Aes算法利用java实现,包含随机生成的key和iv
  • Java 文件内容修改(一)

    千次阅读 2018-03-16 10:29:36
    遇到一个需求,需要修改文件中的内容... * 修改文件内容 * * @param fileName * @param oldstr * @param newStr * @return */ private static boolean modifyFileContent(String fileName, String o...
  • 过去,我讨论过RandomAccessFile以及如何将其用于在Java中进行更快的IO,在本Java NIO教程中,我们将了解如何通过使用FileChannel和ByteBuffer来使用读/写数据。 Channel提供了一种从文件读取数据的替代方法,它...
  • java 文件分片

    千次阅读 2019-11-06 16:06:51
    于是乎,我就去找了一下java 分片的博客原样写了一个demo,额 做了一丢丢的修改吧。按理说 我是不想放原创的,但是呢 水一篇么 这是一个这个 参数类 public class SplitFileParam { public static String file...
  • import java.security.spec.AlgorithmParameterSpec; import java.util.Base64; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spe...
  • Java流与文件

    千次阅读 多人点赞 2018-09-02 19:03:25
    Java中I/O操作主要是指使用Java进行输入,输出操作。Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。任何Java中表示数据源的...
  • java上传大文件慢处理方案

    千次阅读 2019-06-05 17:28:55
    我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。 首先我们需要了解的是上传文件三要素: 1.表单提交方式:post(get方式提交有大小限制,post...
  • doGet方法使用FileProcessor对象使用存储在索引文件中的填充地址指针偏移量,在恒定时间内跳转到提供的索引。 除非索引超出文件范围,否则状态码设置为200,并返回所请求索引处的行,在这种情况下,状态码设置为413...
  • java上传超大文件解决方案

    千次阅读 2019-11-14 11:24:54
    JAVA实现大文件上传及显示进度信息 ---解析HTTPMultiPart协议 (本文提供全部源码下载,请访问https://github.com/1269085759/up6-jsp-mysql) 一.大文件上传基础描述:  各种WEB框架中,对于浏览器上传文件...
  • JAVA文件上传解决方案(500M以上)

    千次阅读 2020-04-28 16:13:32
    前后端要高度配合,需要双方约定好一些数据,才能完成大文件分块,我们在项目中要重点解决的以下问题。 *如何分片; *如何合成一个文件; *中断了从哪个分片开始。 如何分,利用强大的js库,来减轻我们的工作,...
  • .tpk格式的ArcGIS切片包后缀名改为.zip,利用java程序读取bundlx文件中的图片偏移量和bundle文件中的4字节图片长度和图片内容,并将图片输出
  • java文件断点续传的简单实现

    万次阅读 多人点赞 2018-01-20 18:08:12
    前段时间因为任务需要本人这个java渣渣开始研究如何用java实现简单的文件断点续传。所谓的文件断点续传,我的理解是文件在传输过程中因为某些原因程序停止运行文件终止传输,下一次重新传输文件的时候还能从上一次...
  • java文件流读写操作

    万次阅读 多人点赞 2018-01-08 23:13:19
    当我们读写文本文件的时候,采用Reader是非常方便的,比如FileReader,InputStreamReader和BufferedReader。其中最重要的类是InputStreamReader, 它是字节转换为字符的桥梁。你可以在构造器重指定编码的方式,如果...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 86,348
精华内容 34,539
关键字:

java文件偏移

java 订阅