開発中のクラスでバッファライターを定義していますが、問題があります。
私が定義しているクラスコンストラクターでは、次のようになります。
public class RestHandler {
public static BufferedWriter rest_logger;
public RestHandler(parsedXMLConfigData _config, BufferedWriter writer) {
rest_logger = writer;
try {
rest_logger.write("RestHandler instance finished init and ready to receive calls!" + "\n");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
これは機能し、テキストをファイルに出力します。しかしrest_logger
、クラスメソッドの別の1つで同じものを使おうとすると、次のようになります。
@POST
@Path("{subResources: [a-zA-Z0-9_/]+}")
public void postHandler
(
@Context final UriInfo uriInfo,
@PathParam("subResources") String subResources) {
try {
rest_logger.write("TEXT...");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
それは私にストリームクローズ例外を与えます!私はこれを使用してストリームを閉じることに言及する必要があります。
protected void finalize() throws Throwable {
rest_logger.close();
}