gpt4 book ai didi

java - 如何使用java编辑文本文件中的特定行?

转载 作者:行者123 更新时间:2023-12-01 16:42:48 25 4
gpt4 key购买 nike

我正在编写一个程序,允许用户在文本文件中输入最多 9999 个帐户,但是我遇到的问题是它们可以按任何顺序放置,但我必须按顺序打印它们。这是我的代码

import java.nio.file.*;
import java.io.*;
import java.nio.channels.FileChannel;
import java.nio.ByteBuffer;
import static java.nio.file.StandardOpenOption.*;
import java.util.Scanner;
import java.text.*;
public class CreateBankFile {

public static int lines = 0;

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Path file = Paths.get("/root/sandbox/BankAccounts.txt");

String line = "";
int acctNum = 0;
String lastName;
double bal;
final int QUIT = 9999;

try
{
OutputStream output = new BufferedOutputStream(Files.newOutputStream(file));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output));

while(acctNum != QUIT)
{
System.out.print("Enter the acct num less than 9999: ");
acctNum = input.nextInt();
if(acctNum == QUIT)
{
continue;
}
System.out.print("Enter a last name: ");
lastName = input.next();
if(lastName.length() != 8)
{
if(lastName.length() > 8)
{
lastName = lastName.substring(0, 8);
}
else if(lastName.length() < 8)
{
int diff = 8 - lastName.length();
for(int i = 0; i < diff; i++)
{
lastName += " ";
}
}
}
System.out.print("Enter balance: ");
bal = input.nextDouble();

line = "ID#" + acctNum + " " + lastName + "$" + bal;

writer.write(line);
writer.newLine();

lines++;
}
writer.close();
}
catch(IOException e)
{
System.out.println("Error");
}
}
}

我的问题是,如何才能得到它,以便当用户输入“55”时,它被打印到文本文件的第 55 行?

最佳答案

你可以这样做:

1) 创建一个类来存储您的行( acctNum 、 lastName .. 等)

2) 在你的方法中,创建你创建的类的数组列表,对于给定的数字“n”,你的方法将解析所有行,如果 acctNum 小于“n”,你将使用创建一个新实例将此行并将其添加到您的数组列表中

3) 您将使用 acctNum 对数组列表进行排序,然后打印其内容

关于java - 如何使用java编辑文本文件中的特定行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61830712/

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