gpt4 book ai didi

JAVA 写入具有特定偏移量的文件

转载 作者:行者123 更新时间:2023-12-02 04:54:24 26 4
gpt4 key购买 nike

我必须编写一个程序来读取文件并插入用户通过控制台窗口给出的一些文本。文本插入的位置也应该通过控制台窗口给出。

下面是我的代码,输入句子和偏移量后,我收到“字符串索引超出范围”。

输入句子:嘿嘿

输入位置:5

字符串索引超出范围: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());
}


}

}

最佳答案

线路

bufferedWriter.write(sentence, offset, len);

表示从sentence中从sentence中的offset开始写出len个字符。

换句话说,offset 是句子中的位置而不是输出文件中的位置。

如果要在文件中插入文本,您需要编写代码将文件复制到新文件,并在复制过程中将文本添加到正确的位置。

另外你不应该使用

@SuppressWarnings("resource")

要抑制关闭丢失警告 - 您确实需要关闭您的编写器。

关于JAVA 写入具有特定偏移量的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28913543/

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