阅读文本文件Java:15错误:找不到符号

时间:2013-11-30 02:54:17

标签: java class file-io text-files command-prompt

我试图从文本文件中读取内容。 ReadTextFile.java和ReadTextFileTest.java在同一个包ReadTextFile中。我在一个项目中使用了2个包,ReadTextFiles和CreateTextfiles。 ReadTextFiles包从文本文件中读取内容,CreateTextFile包将内容输入到文本文件中。

当我到达命令提示符时,我尝试通过javac ReadTextFileTest.java将java文件编译为类文件。我每次都会收到以下错误。

  1. ReadTextFileTest.java:15错误:找不到符号
  2. ReadTextFile application = new ReadTextFile();
  3. ^
  4. symbol:class ReadTextFile
  5. location:class ReadTextFileTest
  6. ReadTextFileTest.java:15错误:找不到符号
  7. ReadTextFile application = new ReadTextFile();
  8. ^
  9. symbol:class ReadTextFile
  10. location:class ReadTextFileTest 11.2错误
  11. 我猜它在识别我创建的ReadTextFile.java类的对象时遇到了麻烦。

    这是我使用的两个类: ReadTextFile.java

    package ReadTextFile;
    
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.lang.IllegalStateException;
    import java.util.NoSuchElementException;
    import java.util.Scanner;
    
    import AccountRecord.AccountRecord; 
    
    
    
    
    public class ReadTextFile
    {
        private Scanner input;
    
    public void openFile()
    {
        try
        {
            input = new Scanner( new File( "clients.txt" ) );
        }
        catch ( FileNotFoundException fileNotFoundException )
        {
            System.err.println( "Error opening file." );
            System.exit(1);
        }    
    }
    
    public void readRecords()
    {
        AccountRecord record = new AccountRecord();
    
        System.out.printf( "%-10s%-12s%-12s%10s\n", "Account",
                "First Name", "Last Name", "Balance" );
    
        try
        {
            while ( input.hasNext() )
            {
                record.setAccount( input.nextInt() );
                record.setFirstName( input.next() );
                record.setLastName( input.next() );
                record.setBalance( input.nextDouble() );
    
                System.out.printf( "%-10d%-12s%-12s%10.2f\n",
                        record.getAccount(), record.getFirstName(),
                        record.getLastName(), record.getBalance() );
            }    
        }
        catch ( NoSuchElementException elementException )
        {
            System.err.println( "File improperly formed." );
            input.close();
            System.exit( 1 );
        }
        catch ( IlegalStateException stateException )
        {
            System.err.println( "Error opening file." );
            System.exit( 1 );
        }    
    }
    
    public void closeFile()
    {
        if ( input !=null )
            input.close();
    }        
    }
    

    ReadTextFileTest.java

    package ReadTextFile;
    
    public class ReadTextFileTest
    {
        public static void main(String[] args)
        {
        ReadTextFile application = new ReadTextFile();
    
        application.openFile();
        application.readRecords();
        application.closeFile();
        }
    }
    

2 个答案:

答案 0 :(得分:0)

删除

package ReadTextFile;

ReadTextFile不是一个包而是一个类。删除此行并尝试再次编译。

你一定意味着

import readTextFile;

但如果您确定它位于同一目录中,则不必导入它。所以,只需删除ReadTextFileTest的第一行。

评论后编辑:

通常,避免使用与类相同的名称来命名包(尽管@Masud在评论中说的是可能的)。您应该遵循these命名约定。

答案 1 :(得分:0)

Add import statement as below:-

package ReadTextFile;

import ReadTextFile;

public class ReadTextFileTest
{
    public static void main(String[] args)
    {
    ReadTextFile application = new ReadTextFile();

    application.openFile();
    application.readRecords();
    application.closeFile();
    }
}