【问题标题】:Using a separate java files methods使用单独的 java 文件方法
【发布时间】:2016-07-02 14:29:28
【问题描述】:

这个问题是关于安卓的,虽然我不认为这是安卓特有的。

我有一个项目,我想使用两个文件: MainActivity.java 和 filetools.java 。我在 filetools.java 中有三种方法,读取、写入和追加。 我希望能够在我的 MainActivity 中做这样的事情:

filetools.write("/sdcard/file.txt", "something");

MainActivity 的代码只是包、导入、类和 onCreate。

文件工具的代码:

package com.tylerr147.FileRW;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.Scanner;

public class filetools
{
      public String read(String fName){
       try{
          File mFile = new File(fName);
          String content = new Scanner(mFile).useDelimiter("\\Z").next();
      return content;
    }catch(Exception e) {
      return "There was an error retrieving your file. The proccess returned this error:\n"+e.toString();
    }

  }

  public boolean write(String loc, String stuff) {
    File mfile = new File(loc);
    try {
      mfile.createNewFile();
      FileOutputStream f = new FileOutputStream(mfile);
      OutputStreamWriter f2 = new OutputStreamWriter(f);
      f2.append(stuff);
      f2.close();
      f.close();
    } catch(IOException e) {
      return false;
    }
    return true;
  }

  public void append(String filename,     String content) {
    write(filename, read(filename)+content);
  }
}

我想做的另一件事是通过包 com.app.importer 拥有一个完全不同的应用程序

我怎么能做这样的事情

import com.app.importer;

importerAppsMethod();

我在 stackoverflow 上找到了一些帖子,但它们没有帮助。

Importing my custom class and calling it's method?

还有一些,我已经搜索并找不到任何适合我的东西。任何帮助表示赞赏

【问题讨论】:

  • MainActivity 类是否与 filetools 位于不同的包中?这只是来自不同包的类相互使用的问题吗?
  • 不,它们在同一个包中。不过,我确实问了一个关于使用不同软件包的小问题。
  • 要执行filetools.write("/sdcard/file.txt", "something"); 之类的操作 - 您需要将write 方法声明为静态。例如:public static boolean write(String loc, String stuff)。如果您想要类似的行为,您可能必须对所有其他方法执行相同的操作。这是你要找的吗?
  • @ishmaelMalitla 是的,这行得通,你能把它放在答案中吗?

标签: java android import


【解决方案1】:

我将@ishmaelMakitla 评论放入can answer。

执行类似 filetools.write("/sdcard/file.txt", "something"); - 您需要将 write 方法声明为静态。例如:public static boolean write(String loc, String stuff)。如果您想要类似的行为,您可能必须对所有其他方法执行相同的操作。这是你要找的吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 2013-03-14
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多