java - 使用元素 BufferedReader 和 BufferedWriter 创建数组对象

标签 java

我正在尝试创建一个包含 BufferReader 和 BufferWriter 的返回对象。这是我的两个类(class):

测试.java

package FileIO;

import java.io.*;

public  class Test{ 
    static String line = null;
    public static void Main() {
        String fileName = Input.getInput();

        Object[] ioObject = new Object[2];
        ioObject = OpenFile.openFileName(fileName,"READ");      

        BufferedReader bufferedReader = ioObject[0];  

        do{
           //line = null; 
           line =  ReadLine.getLine(bufferedReader); 
           System.out.println(line);
        } while (line != null);
   }    
}

OpenFile.java

package FileIO;

import java.io.*;

public class OpenFile {
    static Object[] ioObject = new Object[2];
    static BufferedReader bufferedReader = null;
    static BufferedWriter bufferedWriter = null;

   public static Object[] openFileName(String fileName, String type){


       if(type == "READ"){ 


         try{ 
            // FileReader reads text files 
            FileReader fileReader =  new FileReader(fileName);

            // Always wrap FileReader in BufferedReader.
            bufferedReader =  new BufferedReader(fileReader);
            ioObject[0] = bufferedReader;
            System.out.println("you lucky dog, file " + fileName + " was found"); 

         }catch(FileNotFoundException ex) {
            System.out.println("FATAL ERROR: File " + fileName + " not found"); 
            System.out.println(ex);
         } 
      }else if(type == "WRITE"){       

      }else{
         System.out.println("FATAL ERROR: type input can only be READ or WRITE");        
         System.exit(0);
      } 
      return ioObject;
   }
} 

我在 test.java 中的这一行收到错误:

BufferedReader bufferedReader = ioObject[0]; 

不兼容类型的对象无法转换为BufferedReader。我很困惑,因为 ioObject[0] 是一个 BufferedReader。

最佳答案

ioObject 是一个 Object[],因此编译器只能确定 ioObject[0] 是一个 Object (即使知道您在其中放置了一个BufferedReader

您需要将其转换为 BufferedReader:

BufferedReader bufferedReader = (BufferedReader) ioObject[0];

或者,不使用 Object[],而是创建一个强类型类来保存两个引用。

class IoObject {
  BufferedReader reader;
  BufferedWriter writer;

  // Constructor, etc.
}

关于java - 使用元素 BufferedReader 和 BufferedWriter 创建数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51032129/

相关文章:

java - 如何在不附加版本号的情况下将 Jar 上传到 Archiva?

java - 无法将 Appcompat 主题从浅色更改为全黑

java - 在运行时在 java(android) 中存储敏感数据

java - 条纹框架

java - 如何在 weblogic 12C 上运行 Spring Boot 应用程序?

java - 无法通过 postman 中的 GET 调用获取 XML 对象

java - 如何为用户提供的国家名称预测正确的国家名称?

java - 使用 if 输入字符串不起作用

Java图片处理框架

java - Activity 在 UI 测试中永远不会变成请求状态