2009-08-28 3 views
1

IO 스트림을 사용하여 파일을 만들거나 쓸 때 Java 웹 사이트 (http://java.sun.com/docs/books/tutorial/essential/io/file.html#createStream)의 지침을 따르고있었습니다. 그러나이 제공하는 코드는 여러 위치에서 깨진 것 같습니다 : 예를 들어IO 스트림을 사용하여 기존 파일을 열거 나 존재하지 않는 파일을 열 때

import static java.nio.file.StandardOpenOption.*; 

Path logfile = ...; 

//Convert the string to a byte array. 
String s = ...; 
byte data[] = s.getBytes(); 

OutputStream out = null; 
try { 
    out = new BufferedOutputStream(logfile.newOutputStream(CREATE, APPEND)); 
    ... 
    out.write(data, 0, data.length); 
} catch (IOException x) { 
    System.err.println(x); 
} finally { 
    if (out != null) { 
     out.flush(); 
     out.close(); 
    } 
} 

가, 이클립스 가져 오기에 충돌하고, 우선, 경로 클래스를 사용하여. 그러나이 튜토리얼은 내가하고 싶은 것을 정확하게 제공하는 것처럼 보였다. - 파일이 존재한다면 (덮어 쓰기), 존재하지 않는다면 파일을 만들고, 궁극적으로는 출력 스트림을 써야한다. .newOutputStream() 메서드를 사용하여 여기에 생성됩니다. 따라서 출력 스트림을 사용하여 작성/작성하는 것이 가능한 후보자처럼 보였습니다. 누구든지 위의 문제를 해결하거나 내가하고 싶은 일을하는 더 좋은 방법을 알고 있습니까? 예를 썬 자바의 일부 6.

클래스 Path 패키지 java.nio.file하지 않는 링크 것을 일 JDK 7 주에 추가 할 예정되는 API의 일부 API를 사용하는 것 같다

답변

2

Path 문서는 OpenJDK의 API 문서 (Sun의 오픈 소스 개발 용 Java 버전)를 가리 킵니다.

파일 I/O (특징 NIO.2) : 당신이 정기적으로 썬 자바 6

를 사용하는 경우

그래서, 당신은 the start page of the tutorial에 경고를 읽고 그 API를 사용할 수 없습니다

이 섹션은 곧 출시 될 JDK7의 기능 및 규칙을 반영하도록 업데이트되었습니다. java.net에서 현재 JDK7 스냅 샷을 다운로드 할 수 있습니다. 이 예비 버전을 게시 했으므로 최신 정보를 얻을 수 있으므로이 자습서에서 발생할 수있는 오류, 누락 또는 개선 사항을 알려주십시오.

썬 자바 6에서는 FileOutputStream 만 사용할 수 있습니다.

FileOutputStream out = new FileOutputStream("filename.xyz"); 
out.write(data, 0, data.length); 

참고 : 파일이 존재하거나 존재하는 경우 기존 파일을 덮어 쓰지 않는 경우는 자동으로 새 파일을 만듭니다 (당신이 원하는 것 무엇 무엇) 텍스트 파일을 쓰기 위해 사용합니다 직접 OutputStream을 사용하는 대신 Writer (예 : FileWriter)을 입력하십시오. Writer은 문자 인코딩을 사용하여 텍스트를 변환합니다.

는 자바 SE 6

+0

에서 사용할 기능에 대한 자세한 내용은 Java SE 6 API Documentation (패키지 java.io 특히 문서가) 당신은 내가 이러한 API없이 수행 할 작업을 수행하는 나를 위해 다른 방법을 제안 할 수 있습니다 참조하십시오? – sepiroth

+0

JDK 6은 Sun Java 6 용 개발 키트입니다. JDK 7은 2010 년 3 월에 릴리스 될 Sun Java의 다음 릴리스가 될 예정입니다. – Jesper

관련 문제