【发布时间】: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 是的,这行得通,你能把它放在答案中吗?