2017-10-13 13 views
-3

XmlParser로 검사 한 후 텍스트 일부를 파일에 씁니다. 모두 잘 작동하지만 코드는 해당 파일을 닫지 마십시오. 그런 다음 프로그램에 문제가 있습니다. .tmp 파일을 만듭니다. 그 행동 후 내 파일은 얼마나 가까운가요?newOutputStream 파일 닫기

def path = new File("my/path")) 
def xml = new XmlParser().parse(path) 
     xml.appendNode("include", [ 
       myAppendToCheck" 
     ]) 
     XmlUtil.serialize(xml, path.newOutputStream())    

    path.newOutputStream().flush() 
    path.newOutputStream().close() 

답변

2

여기서 문제는 3 가지 출력 스트림을 만드는 것입니다. 스트림을 변수에 저장하십시오.

def stream = path.newOutputStream() 
XmlUtil.serialize(xml, stream) 
stream.close() 

스트림이 닫히기 전에 flush가 필요하지 않습니다.

+1

그건 아주 도움이, 난 여전히 Java에서 초보자입니다. 감사 :) –

0

그냥 난 아직 자바 초보자

있어 폐쇄가 끝날 때 당신을 위해 스트림을 닫습니다

def path = new File("my/path")) 
def xml = new XmlParser().parse(path) 

xml.appendNode("include", [ 
    myAppendToCheck" 
]) 

path.withOutputStream { os -> 
    XmlUtil.serialize(xml, os)    
} 

withOutputStream ...

를 사용하여이있다 멋져, 아니 자바 ;-)