gpt4 book ai didi

java - FileReader/Scanner 读取文件名而不是 .txt 文件的内容

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

我正在尝试实现一种霍夫曼算法,该算法从 .txt 文件中获取字符。 txt 文件包含一段文本。现在当我像这样运行程序时

java HuffmanCode large.txt

它产生输出,但它评估的是文件的名称“large.txt”,而不是文件large.txt中的文本。我怎样才能让它读取内容呢?感谢您的帮助。

public static void main(String[] args) throws IOException  {

String inputFileName = args[0];
FileReader reader = new FileReader(inputFileName);
Scanner in = new Scanner(reader);

int[] charFreqs = new int[256];
// read each character and record the frequencies
for (char c : inputFileName.toCharArray())
charFreqs[c]++;

// build tree
HuffmanTree tree = buildTree(charFreqs);

// print out results
System.out.println("SYMBOL\tWEIGHT\tHUFFMAN CODE");
printCodes(tree, new StringBuffer());
}
}

最佳答案

你真的很接近 - 你只是迭代 inputFileName.toCharArray(),它为你提供文件名中的字符。您需要从 in 变量中读取字符(这将为您提供文件内容),例如:

while (in.hasNextLine())
{
char[] line = in.nextLine().toCharArray();
for (char c : line)
charFreqs[c]++;
}

请注意,这可能会丢弃文件中的所有换行符,因此如果您想对它们进行计数,您可能必须手动执行此操作。或者切换到从已有的 FileReader 读取原始 char[],这可能是比上面更好的方法(您需要原始字符数据,而不是“文本”数据) ,这就是 Scanner 的操作)。

关于java - FileReader/Scanner 读取文件名而不是 .txt 文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46989748/

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