問題: 我有一個應用程序,在這個應用程序中,在日常文件中進行頻繁的寫操作。我不想爲每次寫入都打開關閉文件。java中基於定時器的文件持久連接
方法: 基於計時器的應用程序將在每天12:01開始並創建一個線程。在此線程中,將創建文件打開連接。所以當一個GET請求來寫操作時,它只會檢查線程是否正在運行並寫入文件。在接下來的12:01,上一個線程將關閉文件連接。
任何建議如何實現這? 我是Java新手。請幫助
問題: 我有一個應用程序,在這個應用程序中,在日常文件中進行頻繁的寫操作。我不想爲每次寫入都打開關閉文件。java中基於定時器的文件持久連接
方法: 基於計時器的應用程序將在每天12:01開始並創建一個線程。在此線程中,將創建文件打開連接。所以當一個GET請求來寫操作時,它只會檢查線程是否正在運行並寫入文件。在接下來的12:01,上一個線程將關閉文件連接。
任何建議如何實現這? 我是Java新手。請幫助
您不需要另一個線程。
只需使用一個Singleton來執行寫入。每次需要編寫時,都需要在編寫器對象上調用一個方法。該writer對象檢查當前日期,並查看當前打開的文件是否適合當前日期。如果是這樣,寫。如果沒有,關閉文件,爲今天創建/打開適當的文件,然後寫入。
具有指向打開文件的成員變量的對象將保持該文件處於打開狀態,直到該對象超出範圍並進行垃圾收集。
問題是,你真的不在意午夜時刻的轉身。你只關心你需要寫的時刻。
Thanks @Basil Bourque。你可以幫我寫一些代碼。我將如何持續打開文件? – user3655225
所有這些問題已經在堆棧溢出:單例,打開文件,命名文件時使用日期作爲名稱的一部分,並檢查當前日期(提示:'LocalDate')。請搜索堆棧溢出並學習。並閱讀Oracle教程。你也可能過度思考這個問題。文件保持打開狀態,直到您明確關閉它,或者您的應用程序結束,或者JVM結束或崩潰。 –
明白了!謝謝 – user3655225
這是在一個Servlet環境中,一個Web應用程序? –
如果您的應用在白天關閉/崩潰,會發生什麼情況 –