gpt4 book ai didi

java - 如何在Java中按位置访问文件中的字符串

转载 作者:行者123 更新时间:2023-11-30 04:33:02 24 4
gpt4 key购买 nike

我有一个包含以下内容的文本文件:

one
two
three
four

我想通过Java中文本文件中的位置来访问字符串“三”。我在google上找到了子字符串概念,但无法使用它。

到目前为止我能够读取文件内容:

import java.io.*;
class FileRead
{
public static void main(String args[])
{
try{
// Open the file that is the first
// command line parameter
FileInputStream fstream = new FileInputStream("textfile.txt");
// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null) {
// Print the content on the console
System.out.println (strLine);
}
//Close the input stream
in.close();
}catch (Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}

}

我想将子字符串概念应用于文件。它询问位置并显示字符串。

 String Str = new String("Welcome to Tutorialspoint.com");
System.out.println(Str.substring(10, 15) );

最佳答案

如果您知道您感兴趣的文件中的字节偏移量,那么这很简单:

RandomAccessFile raFile = new RandomAccessFile("textfile.txt", "r");
raFile.seek(startOffset);
byte[] bytes = new byte[length];
raFile.readFully(bytes);
raFile.close();
String str = new String(bytes, "Windows-1252"); // or whatever encoding

但是要使其工作,您必须使用字节偏移量,而不是字符偏移量 - 如果文件以可变宽度编码(例如 UTF-8)编码,则无法直接查找第 n 个字符,您必须从文件顶部开始读取并丢弃前 n-1 个字符。

关于java - 如何在Java中按位置访问文件中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14156314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com