gpt4 book ai didi

java - 如何读取文件并将信息传递给单独保存的类对象?

转载 作者:行者123 更新时间:2023-12-02 09:56:08 25 4
gpt4 key购买 nike

我正在设置一个java应用程序,它有3个单独保存的类WordApp、WordProcessor和WordType。 WordApp 读取文件并假设将数据传递给其他类。我可以读取该文件,但无法将数据传递给其他类。如何通过字符串传递信息?

我已经搜索过这个,我找到的每个示例都将所有类保存到同一个文件中。我正在使用文本板,并尝试将字符串传递给 WordProcessor 类,该类构造了 WordType 对象的 ArrayList。这个方法对我不起作用。

这是用于读取文件的 WordApp 类的第一部分。

import java.io.*;                                                                                                // Import IO package
import java.util.Scanner; // Import Scanner utility
import java.util.ArrayList; // Import ArrayList utility

public class WordApp // Declared WordApp Class
{
public static void main (String[] args) // Main
{
// Declared Variables
String again;
String initial = "";
String inputFileName;
String outputFileName;


// Declared Objects
Scanner input = new Scanner(System.in);


do
{
try
{
System.out.println(" Welcome to the Word Processor App! ");
System.out.println("**********************************************************************\n");
System.out.println("Enter file names with .txt extension.");
System.out.print("Please Enter File Name to Read: ");
inputFileName = input.nextLine().trim();
File mcFile = new File(inputFileName);
Scanner scan = new Scanner(mcFile);

System.out.println("Enter file names with .txt extension.");
System.out.print("Please Enter File Name to Save: ");
outputFileName = input.nextLine().trim();
File deFile = new File(outputFileName);
PrintWriter out = new PrintWriter(deFile);

System.out.println("Reading file...\n");

while(scan.hasNext())
{
initial = scan.next();
}

scan.close();

System.out.println("Scanning Paragraph.....\n");
WordProcessor x = new WordProcessor();
x.addWord(initial);

我试图在此处传递文件中的单词:

import java.util.ArrayList;
import java.util.Collections;

public class WordProcessor
{
private ArrayList<WordType> words;
private int totSentences;
private int totUnique;

public WordProcessor()
{
words = new ArrayList<WordType>();
totSentences = 0;
totUnique = 0;
}

这里:


public class WordType implements Comparable
{

// instance data
private String word;
private int count;
private int syllables;

// Constructors
public WordType(String newWord)
{
word = newWord;
count = 1;
syllables = countSyllables();
}

我期望这些单词传递给其他类,但是当我保存文件时它是空白的。抱歉,如果我没有正确发布代码

最佳答案

您正在读取文件并获取其中包含的项目,但丢弃除最后一个之外的所有项目。

while(scan.hasNext()) {
initial = scan.next();
// You do **nothing** with the String read in
}

scan.close();

System.out.println("Scanning Paragraph.....\n");
WordProcessor x = new WordProcessor();
x.addWord(initial); // until here where you add the last one

而是在 while 循环之前创建 WordProcessor 对象,并在 while 循环添加单词

WordProcessor x = new WordProcessor();

while(scan.hasNext()) {
initial = scan.next();
x.addWord(initial);
}
scan.close();

可能还有其他错误,尤其是代码中未显示的问题(我想到了 addWord(...)),但这个错误是显而易见的。

您正在执行什么类型的循环以及为什么?你似乎有一个 do-while 循环——为什么?同样,如果这不能解决您的问题,那么您仍然需要创建并发布有效的 mcve所以我们不必猜测问题到底是什么。请理解,我并不是要求您提供所有代码,而是要求完全不同的代码 - 如果您的问题尚未解决并且您仍然需要帮助,请阅读链接并完全理解它。

关于java - 如何读取文件并将信息传递给单独保存的类对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55996796/

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