gpt4 book ai didi

java - 如何从文件中读取内容并将内容保存到链表中?

转载 作者:行者123 更新时间:2023-12-01 23:51:31 25 4
gpt4 key购买 nike

我正在尝试编写一个程序代码,将txt文件的内容保存到单链表中,txt文件中的每一行代表一个对象。我使用扫描仪从文件中读取,但我不知道如何获取列表中的单词。

任何提示或暗示都将受到高度赞赏。

我的尝试:

类项目

public class Item implements Serializable {
private String name;
private double price;

public Item() {
name="" ;
price=0.00 ;
}

public Item(String n, double p) {
name = n ;
price = p ;
}

public void setName(String n) {
name = n ;
}

public void setPrice(double p) { price = p ;
}

public String getName() {
return name ;
}

public double getPrice() {
return price ;
}
}

类节点

public class Node {
public Item data ;
public Node next ;

public Node(Item d) {
data = d ;
}

public Node(Item d, Node n) {
data = d ;
next = n ;
}

public String toString() {
return data+"";
}
}

列表项类

public class ListItems {

private Node first;

public ListItems(){
first=null;
}

public boolean isEmpty(){
return first==null;
}

public void addAnItems(Item d, int i){
Node node1=new Node(d);
node1.next=first;
first=items.get(i);
}

public void displayList(){
Node current = first;

while(current != null){
System.out.println(current.toString());
current=current.next;
}
}
}

文件项类

import java.io.* ;
import java.util.* ;

public class FileItems {
public static void main (String[]args){
Scanner input1=new Scanner(System.in) ;
try {
Scanner input2=new Scanner(new File("items.txt")) ;
}

catch (FileNotFoundException e) {
System.out.println("ERROR OPENING FILE") ;
System.Exit(1) ;
}

while (input2.hasNext()){
String name1=input2.next() ;
double price1=input2.nextDouble() ;
}

ListItems items=new ListItems();
System.out.println("CHOOSE ONE OF THE FOLLOWING OPTIONS :") ;
System.out.println("ENTER 1 TO ADD AN ITEM TO THE LIST") ;
System.out.println("ENTER 2 TO DELETE AN ITEM FROM THE LIST") ;
System.out.println("ENTER 3 TO DISPLAY ALL THE ITEMS IN THE LIST") ;
System.out.println("ENTER 4 TO CLOSE THE PROGRAM") ;

int in=input1.nextInt() ;

switch (in) {
case 1 : case1() ;
break ;
case 2 : case1() ;
break ;
case 3 : displayList() ;
break ;
case 4 : System.Exit(1) ;
break ;
}

public void case1() {
System.out.println("ENTER THE NAME OF THE ITEM, THE PRICE AND THE INDEX ");

try {
System.out.println("NAME: ") ;
String n2=input1.next() ;
System.out.println("PRICE: ") ;
double p2=input1.nextDouble() ;
System.out.println("INDEX: ") ;
int index=input1.nextInt() ;
}

catch (InputMismatchException e) {
System.out.print("INVALID INPUT") ;
}

Item I=new Item(n2, p2) ;
addAnItem(I, index) ;
}

public static case2() {
System.out.println("ENTER THE INDEX OF THE ITEM TO DELETE IT ") ;

try {
int index=input1.nextInt() ;
}

catch (InputMismatchException e) {
System.out.print("INVALID INPUT") ;
}
items.remove(index) ;
}
}
}

最佳答案

打开文本文件并将每一行作为字符串读取,并将该字符串对象放入 LinkedList 中。以相反的顺序打印 LinkedList 中的所有行。

import java.util.*;
import java.io.*;

public class FileLinkList
{
public static void main(String args[])throws IOException{
String content = new String();
int count=1;
File file = new File("abc.txt");
LinkedList<String> list = new LinkedList<String>();

try {
Scanner sc = new Scanner(new FileInputStream(file));
while (sc.hasNextLine()){
content = sc.nextLine();
list.add(content);
}
sc.close();
}catch(FileNotFoundException fnf){
fnf.printStackTrace();
}
catch (Exception e) {
e.printStackTrace();
System.out.println("\nProgram terminated Safely...");
}

Collections.reverse(list);
Iterator i = list.iterator();
while (i.hasNext()) {
System.out.print("Node " + (count++) + " : ");
System.out.println(i.next());
}
}
}

关于java - 如何从文件中读取内容并将内容保存到链表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16247623/

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