2016-07-02 11 views
0

Diese Frage betrifft Android, obwohl ich glaube nicht, dass dies Android-spezifische ist.Verwenden Sie eine separate Java-Dateien Methoden

Ich habe ein Projekt, das ich zwei Dateien verwenden möchte: MainActivity.java und filetools.java. Ich habe drei Methoden in filetools.java, lesen, schreiben und anhängen. Ich möchte in der Lage, so etwas wie dies in meinem MainActivity zu tun:

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

Der Code für MainActivity ist nur die Verpackung, die Einfuhr, die Klasse und onCreate.

Der Code für filetools:

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); 
    } 
} 

Eine andere Sache, die ich zu tun, ist in der Lage sein möchte,

eine ganz andere App von dem Paket com.app.importer haben, wie ich etwas tun könnte wie

import com.app.importer; 

importerAppsMethod(); 

Ich habe ein paar Beiträge auf Stackoverflow gefunden, aber sie helfen nicht.

Importing my custom class and calling it's method?

Es gibt ein paar mehr, und ich habe gesucht und kann nichts finden, das funktioniert für mich. Jede Hilfe wird geschätzt

+1

Ist die MainActivity-Klasse in einem anderen Paket zu filetools? Ist das nur eine Frage von Klassen aus verschiedenen Paketen, die sich gegenseitig benutzen? –

+0

Nein, sie sind im selben Paket. Ich habe allerdings eine kleine Frage zur Verwendung verschiedener Pakete gestellt. –

+0

Um etwas wie 'filetools.write ("/sdcard/file.txt "," etwas ") zu machen;' - müssen Sie die 'write' Methode als statisch deklarieren. Zum Beispiel: 'public static boolean write (String loc, String stuff)'. Möglicherweise müssen Sie für alle anderen Methoden dasselbe tun, wenn Sie ein ähnliches Verhalten wünschen. Suchst du danach? – ishmaelMakitla

Antwort

2

Ich setze @ishmaelMakitla Kommentar intocan Antwort.

So etwas wie filetools.write ("/ sdcard/file.txt", "etwas"); - Sie müssen die Schreibmethode als statisch deklarieren. Zum Beispiel: public static boolean write (String loc, String stuff). Möglicherweise müssen Sie für alle anderen Methoden dasselbe tun, wenn Sie ein ähnliches Verhalten wünschen. Suchst du danach?

Verwandte Themen