当前位置: 首页 > 面试题库 >

Java 1.4.2-读取文件

毋弘光
2023-03-14
问题内容

我正在尝试读取一个简单的文件,然后再读取一个用户应该选择的文件。我仍然不断遇到以下错误:

Readzilla.java:37:找不到符号

symbol:方法FileReader(java.lang.String)

位置:类java.io.BufferedReader

行= read.FileReader(newDoc);

这是代码。

import java.io.*;

    public class Readzilla
    {
        public static void main(String[] args) throws IOException
        {
            String line;
            BufferedReader read;
            // BufferedReader "read" reads the file
            BufferedReader in;
            // BufferedReader "in" reads the input sent by the user  
            String loop;
            // "loop" decides whether another document should be read

            in = new BufferedReader(new InputStreamReader(System.in));
            read = new BufferedReader(new FileReader("message.txt"));
            line = read.readLine();

            while(line != null)
            {
                System.out.println(line);
                line = read.readLine();
            }

            // read another document
            System.out.println("Would you like to read another document? (Y/N)");
            loop = in.readLine();
            loop = loop.toUpperCase();

            if (loop == "Y")
            {
                do
                {
                    System.out.println("What file (.txt) would you like to read?");
                    String newDoc = in.readLine();
                    // newDoc reads a text file of the user's choosing
                    line = read.FileReader(newDoc);
                    //  ^ This line constantly gives errors
                    System.out.println("Reading...");
                    line = read.readLine();

                    while(line != null)
                    {
                        System.out.println(line);
                        line = read.readLine();
                    }

                    // read another document
                    System.out.println("Would you like to read another document? (Y/N)");
                    loop = in.readLine();
                }
                while (loop == "Y");    
            }
            else
            {
                System.out.println("Closing Program...");
            }
        }
    }

问题答案:

您的问题是这一行:

line = read.FileReader(newDoc);

FileReader类上没有命名方法BufferedReader,这是编译器解释该行的方式。FileReader本身就是一个类,看起来您正在尝试打开一个新文件进行读取。因此,您想说些类似的话:

BufferedReader doc = new BufferedReader(new FileReader(newDoc));

之后,您要替换

line = read.readLine();

line = doc.readLine()

因为这是您从中引用的文档中读取的方式BufferedReader doc

此外,您在这里遇到问题(我发现有两次):

loop == "Y"

在Java中,==参考 平等 。您绝对希望在这里实现价值平等,因此请说:

"Y".equals(loop);

这是一个常见的错误;==作为参考平等,IMO的设计决策很差。



 类似资料:
  • 工作表列表 全量读取 游标读取 跳过指定行 忽略空白单元格 忽略空白行 忽略跳过动作常量 设置全局读取类型 单元格回调模式读取 数据类型读取 数据类型常量

  • 读取文件已支持 windows 系统,版本号大于等于 1.3.4.1; 扩展版本大于等于 1.2.7; PECL 安装时将会提示是否开启读取功能,请键入 yes; 编译 编译时需添加 --enable-reader ./configure --enable-reader 示例 $config = ['path' => './tests']; $excel = new \Vtiful\K

  • 读写文件是很多程序的基本任务,下面我们看看Go里面的文件读取。 package main import ( "bufio" "fmt" "io" "io/ioutil" "os" ) // 读取文件的函数调用大多数都需要检查错误, // 使用下面这个错误检查方法可以方便一点 func check(e error) { if e != nil {

  • 分析网站访问日志应该是一个运维工程师最常见的工作了。所以我们先学习一下怎么用 logstash 来处理日志文件。 Logstash 使用一个名叫 FileWatch 的 Ruby Gem 库来监听文件变化。这个库支持 glob 展开文件路径,而且会记录一个叫 .sincedb 的数据库文件来跟踪被监听的日志文件的当前读取位置。所以,不要担心 logstash 会漏过你的数据。 sincedb 文件

  • 在7.1节中提到过FileEntry的file方法可以获取到文件的相关信息,实际上file方法返回的是HTML5中的File类型对象,所以有必要先介绍一下HTML5中的FILE对象。 HTML5可以在文件未上传之前在浏览器端获取到文件的相关信息,就是通过File API。当用户通过文件选择控件选择文件后,JavaScript就可以通过控件DOM的files属性获取到对应的File对象: docum

  • 由来 在FileUtil中本来已经针对文件的读操作做了大量的静态封装,但是根据职责分离原则,我觉得有必要针对文件读取单独封装一个类,这样项目更加清晰。当然,使用FileUtil操作文件是最方便的。 使用 在JDK中,同样有一个FileReader类,但是并不如想象中的那样好用,于是Hutool便提供了更加便捷FileReader类。 //默认UTF-8编码,可以在构造中传入第二个参数做为编码 Fi