繁体   English   中英

如何使用Scanner类打印纯文本文件?

[英]How do I use a Scanner class to Print a plain text file?

我正在尝试创建一个Scanner类,该类应该输出包含以下信息的纯文本文件;

PersonName,地址,城市,电话号码,PersonName,地址,城市,电话号码,PersonName,地址,城市,电话号码,PersonName,地址,城市,电话号码,

我的定界符是逗号。

每组数据必须以二叉树的形式输出。 首先以名称为根节点,然后以地址为根节点,然后以城市为根节点,依此类推。

这是我创建的Java文件,每次都输出“用法:java Scanner_Two Telephone.txt” +“文件位置”,而下面没有树。 谁能告诉我我哪里出问题了。 我已经创建了Entry类,BinaryTreeNode类和Binary Tree类。

import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;

public class Scanner_Two
{

     private static void readFile(String TreeName)
     {

       try {
      // Scanner input = new Scanner (new File("telephone.txt")).useDelimiter("\\s*,\\s*");
         Scanner scanned = new Scanner(new File(TreeName));

         scanned.useDelimiter
            (System.getProperty("line.separator"));

         while (scanned.hasNext())
         {
           parseLine(scanned.next());
         }

         scanned.close();
       } catch (FileNotFoundException e) {
         e.printStackTrace();
       }
     }

private static void parseLine(String line)
{
       Scanner lineScanner = new Scanner(line);
       lineScanner.useDelimiter("\\s*,\\s*");

       String rootnode = lineScanner.next();
       String bone = lineScanner.next();
       String btwo = lineScanner.next();
       String bthree = lineScanner.next();

       System.out.println("Name: " + rootnode + " Address: " + bone + ", City: " + btwo + ", Telephone Number: " + bthree);
}

public static void main(String[] args)
{
       if(args.length != 1)
       {

         System.out.println("usage: java Scanner_Two Person.txt " + "file location");
         System.exit(0);

       }

       readFile(args[0]);
}

}

如果您正在使用

if(args.length != 1)
 {           
     System.out.println("usage: java Scanner_Two Person.txt " + "file location");    
     System.exit(0);    
 }    

并且您实际上得到了打印此消息,这意味着您具有少于1个参数或多个参数。 您应该检查一下。

正如标题中所指出的那样,您所描述的问题与Scanner类无关,实际上与您处理参数有关。 在下面的代码中(位于您的main方法中),我们可以看到您的程序在未达到Scanner声明之前就已失败:

if(args.length != 1) {
System.out.println("usage: java Scanner_Two Person.txt " + "file location");
System.exit(0);
}

由于该代码正在执行,因此我们知道args使用0或1个以上的元素进入main方法。 我将大步向前,猜测您是新手,在这种情况下,您应该真正研究如何使用命令行参数 通常,只有在通过某些命令行环境(例如终端或命令提示符)执行时,才使用命令行参数。 如果您使用的是IDE,则尽管输入特定于IDE,也可以输入此类参数。

如果您具体告诉我们如何执行代码,并且如果通过命令行(即使用的特定命令)来执行代码,我将提供更详细的答案。

使用硬编码的main方法甚至比了解命令行环境更容易,并且对于重复测试更加方便,该方法是:

public static void main(String[] args) {
readFile("C:\\[filepath]\\Person.txt");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM