【问题标题】:how can i use one file object in another class我如何在另一个类中使用一个文件对象
【发布时间】:2015-07-27 07:12:36
【问题描述】:

当我在另一个给出错误的类中使用文件对象时。 java中有任何机制我们可以在另一个类中使用对象。

class Abc {
    File file = new File("D:\\test.txt");
    BufferedReader br = new BufferedReader(new FileReader(alert_file));
}

class Def {
    File f_rename = new File("D:\\result.txt");
    if (file.renameTo(f_rename)) {
        System.out.println("file has been renamed");
    } else {
        System.out.println("file not renamed");
    }
}

【问题讨论】:

  • 你的代码不会编译
  • 您可以采用两种快速方法,第一种是实例化将包含该对象的类,然后通过类对象访问它,另一种是创建静态变量并保存文件在那里,随时可以访问。这真的取决于你想怎么做。
  • 这甚至比不上一个有效的 Java 程序。请先做好基础知识(即将您的逻辑放在方法中)。

标签: java file bufferedreader


【解决方案1】:

您编写的类只是您需要首先实例化的模板。在这里,您正在做的是将 ABC 类中定义的变量访问到 Def 类中,除非您在 Def 对象中有 ABC 类的对象,否则这是不允许的。 以下代码演示了它是如何完成的:

class MyClass{
     File file;
     public MyClass(){
        file=new File("somefile.txt");
     }
     //in some method you can write...
     public void someMethod(){
        SomeOtherClass soc=new SomeOtherClass(file);
        soc.someOtherMethod();
     }
} 

   class SomeOtherClass{
      File file; 
      public SomeOtherClass(File file){
        this.file=file;
      }
      public someOtherMethod(){
        //do whatever you want here with file object
      }
   }

【讨论】:

    【解决方案2】:

    你写的sn-p的代码是错的,

    Abc 类 {

    public void checkFile(){

    File file = new File("D:\\test.txt");
    BufferedReader br = new BufferedReader(new FileReader(alert_file));
    

    }

    }

    类定义{

    public void checkFile() {

    File f_rename = new File("D:\\result.txt");
    if (file.renameTo(f_rename)) {
        System.out.println("file has been renamed");
    } else {
        System.out.println("file not renamed");
    }
    

    }

    }

    你可以通过不同的方式实现,

    1. 静态变量。
    2. 实例化 obj & getter 方法。

    【讨论】:

      【解决方案3】:
      class Abc 
      {
      public static void main(String[] ars)
      {
      File file = new File("D:\\test.txt");
      BufferedReader br = new BufferedReader(new FileReader(alert_file));
      Def d=new Def();    
      d.rename();
      }
      }
      
      class Def {
      public static void rename()
      {
      File f_rename = new File("D:\\result.txt");
      if (Abc.file.renameTo(f_rename)) 
      {
      System.out.println("file has been renamed");
      } 
      else 
      {
      System.out.println("file not renamed");
      }
      }
      }
      

      【讨论】:

      • 这是一个简单的解决方案。将类名放在文件对象之前..这在java中除外。
      猜你喜欢
      • 2017-08-16
      • 1970-01-01
      • 2016-05-05
      • 2013-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-31
      • 1970-01-01
      相关资源
      最近更新 更多