이 질문에는 이미 답변이 있습니다.
나는이 간단한 자바 코드를 가지고있다 :
import java.nio.file.*;
import java.io.*;
public class Write {
public static final String PATH = "/home/user/Desktop/hello.txt";
public static void main(String[] argv) {
Path path = Paths.get(PATH);
OutputStream out;
try {
out = Files.newOutputStream(path, CREATE, APPEND);
} catch (IOException e) {
System.out.println("Caught IOException: "+e.getMessage());
}
}
}
어떤이 오류로 인해 컴파일 못해 :
Write.java:14: error: cannot find symbol
out = Files.newOutputStream(path, CREATE, APPEND);
^
symbol: variable CREATE
location: class Write
Write.java:14: error: cannot find symbol
out = Files.newOutputStream(path, CREATE, APPEND);
^
symbol: variable APPEND
location: class Write
2 errors
보통 이것은 내가 물건을 가져 오는 것을 잊어 버린 것을 의미합니다. 나는 심지어 추가하려고 :
import java.nio.file.StandardOpenOption
하지만 같은 오류가 발생합니다.
편집하다:좋아, 그래서 @rmlan 조언을 따라 내 문제를 해결했습니다. 나는 그 상수들을 그리워했다. 감사.
다음 위치에서 가져 오기 변경 :
import java.nio.file.StandardOpenOption
에
import static java.nio.file.StandardOpenOption.*
(자격없이) StandardOpenOption 클래스에서 열거 형 상수를 참조하려면 다음을 수행하십시오.
Files.newOutputStream(path, CREATE, APPEND);
해당 클래스에서 모든 enum 상수를 정적으로 가져와야합니다 (또는 적어도 사용중인 특정 정적 가져 오기를 정적으로 가져와야합니다).
또는, 다른 답변에서 언급했듯이 추가 한 가져 오기를 유지할 수 있지만 그 경우에는절대로 필요한 것StandardOpenOption의 enum 상수에 대한 참조를 완전하게 한정합니다.
Files.newOutputStream(path, StandardOpenOption.CREATE, StandardOpenOption.APPEND);
가져 오기를 정적으로 만들어야하거나
import static java.nio.file.StandardOpenOption.*;
StandardOpenOptions의 정적 참조를 사용하거나
import java.nio.file.StandardOpenOption;
Files.newOutputStream(path, StandardOpenOption.CREATE, StandardOpenOption.APPEND);
이들은 정적 멤버입니다. 클래스를 앞에 추가하거나
StandardOpenOption.APPEND
또는 정적 가져 오기 수행
import static java.nio.file.StandardOpenOption.APPEND;
이것을 사용하십시오
import static java.nio.file.StandardOpenOption.CREATE;
import static java.nio.file.StandardOpenOption.APPEND;
또는
import static java.nio.file.StandardOpenOption.*
대신에import java.nio.file.StandardOpenOption