我有一個簡單的單個Java文件,它具有主要方法和一堆其他方法。我想在我的主要方法中打開一個文本文件,但保持打開並在我的其他方法中追加到我的Java代碼中。在Java中使用它的最佳方式是什麼?使文本文件可用於Java中的所有方法
1
A
回答
3
請看看java.io.中的FileWriter類
private FileWriter _writer;
public static void main(String args[])
{
_writer = new FileWriter(filePath, true);
}
filepath是您的文件的名稱,true是追加並且不會每次都重寫您的文件。這位作家會保持開放直到你關閉它。
_writer.close();
我會指出這可能不是最好的選擇。由於您可以隨時追加到文件中,因此沒有理由打開您的數據流。您可以簡單地使用append變量重新創建它爲true。
寫入方法可能更適合你,這樣你也可以將它放在它自己的線程上。
public static void write(String output)
{
FileWriter writer = new FileWriter(filePath, true);
writer.write(output);
writer.close();
}
1
你所尋求的是一個作家,一個對象,讓方法寫進去(或PrintWriter的,它可以讓你打印的行由行)。您可以從各種輸出源創建作家,包括使用FileWriter的文件。
2
你所需要的面向對象編程被稱爲「實例變量」
這個變量是從同一個對象的方法訪問,你不必到處傳遞它。
所以,你的類可以被定義爲:
class MyClass {
// This is your instance variable
private PrintWriter output;
public void methodOne() {
output.println("One");
}
public void methodTwo() {
output.println("Two");
}
public void methodThree() {
output.println("Three");
}
// you get the idea
public void close(){
output.close();
}
}
這樣,你可以創建MyClass
一個對象,並初始化實例變量,並在所有的方法都使用它。
這可能是主要的方法:
public static void main(String [] args ) {
MyClass object = new MyClass();
// add another method to initialize the instance variable
object.useFile("/Users/yourname/yourFile.txt");
// useFile defined as: internally initialized as:
// output = new PrintStream(new FileOutputStream(fileName));
object.methodOne();
object.methodTwo();
object.methodThree(),
object.close();
}
的想法,是有它在的方法的其餘部分中使用私有屬性,所以您不必在全部通過參考地點。
如果你有不同的類試圖訪問相同的屬性,也許你可以將這些方法移動到這個類。
相關問題
- 1. 有沒有使用Java從PostScript(.ps,.eps)文件中提取文本的方法?
- 2. 在所有文件中修剪文本的最快方法
- 3. 使用Java String.split方法從文本文件中獲取參數
- 4. 用於其他.java文件中的SQLite方法。如何使用
- 5. 使用StreamReader讀取文件夾中的所有文本文件
- 6. 如何使用Java從一個文件夾中獲取所有文本文件?
- 7. 獲取文件中的所有方法
- 8. 在Java類文件中使用方法
- 9. 讀取conf文件並使內容可用於包中的所有文件
- 10. 讀取Java中的目錄中的所有文本文件?
- 11. 所有Java版本的Jar文件?
- 12. Java文本屬性文件:有什麼方法可以測試合法性嗎?
- 13. 使用java中的文本文件
- 14. 負荷目錄使用.getClassLoader()。getResource()方法中的所有文件
- 15. 用於文本文件中「for循環」的替代方法
- 16. 替換項目中所有java文件中的文本
- 17. 如何使用tkinter網格方法將所有文本居中?
- 18. 帶有所有可能語法結構的java源文件
- 19. 列出腳本文件中的所有類和方法
- 20. 可以java導入文本方法
- 21. 選擇文件中的所有文本
- 22. 如何從Java中的XML文件提取所有PCDATA(文本)?
- 23. 方法來驗證使用jQuery的所有文本框驗證
- 24. Java:使用Filewriter編輯任何文件名的所有文件
- 25. 將XSL應用於目錄中的所有文件的通用方法?
- 26. 使用命令行來小寫所有文件中的所有文本?
- 27. 使用命令行替換文件夾中所有文件中的文本?
- 28. 使用java在文本文件中查找字符串的最快方法
- 29. 從文本文件中刪除所有文件的腳本
- 30. 無法使用java保存文本文件中的內容
你應該知道線程問題。 – 2010-06-24 21:42:52
爲什麼你想要在'main'中打開並且始終保持打開的任何特定原因?聽起來有點可疑。您可以使用'FileWriter'的附加模式來始終寫入以避免覆蓋以前的內容。除非你所有的其他方法都和你的'main'在同一個類中(除此之外),否則我一定會盡量避免在'main'中放置這樣的邏輯。 – 2010-06-24 21:51:59