File을 인수로 받아들이는 함수가 있습니다. 내 문자열 데이터를 함수에 전달하기 위해 새 파일 (파일 시스템에 대한 쓰기 액세스 권한이 없음)을 생성 / 작성하고 싶지 않습니다. 문자열 데이터가 파일에 존재하지 않는다고 추가해야합니다 (그래서 파일에서 데이터를 읽을 수 없습니다).
Streams를 사용하여 File 객체로 "캐스트"할 수 있습니까?
File을 인수로 받아들이는 함수가 있습니다. 내 문자열 데이터를 함수에 전달하기 위해 새 파일 (파일 시스템에 대한 쓰기 액세스 권한이 없음)을 생성 / 작성하고 싶지 않습니다. 문자열 데이터가 파일에 존재하지 않는다고 추가해야합니다 (그래서 파일에서 데이터를 읽을 수 없습니다).
Streams를 사용하여 File 객체로 "캐스트"할 수 있습니까?
답변:
일반적으로 메서드가 파일을 수락 할 때 스트림을 수락하는 다른 메서드가 근처에 있습니다. 그렇지 않은 경우 API가 잘못 코딩 된 것입니다. 그렇지 않으면 일반적으로 많은 경우 권한이 부여되는 임시 파일을 사용할 수 있습니다. 애플릿 인 경우 쓰기 권한을 요청할 수 있습니다 .
예 :
try {
// Create temp file.
File temp = File.createTempFile("pattern", ".suffix");
// Delete temp file when program exits.
temp.deleteOnExit();
// Write to temp file
BufferedWriter out = new BufferedWriter(new FileWriter(temp));
out.write("aString");
out.close();
} catch (IOException e) {
}
Java 의 File 객체는 파일 자체가 아니라 디렉토리 또는 파일의 경로를 나타냅니다. File
객체 를 생성하기 위해 파일 시스템에 대한 쓰기 액세스 권한이 필요하지 않습니다. 실제로 파일에 쓰려는 경우에만 필요합니다 ( 예 : FileOutputStream 사용 ).
File
객체 를 취하는 코드를 링크 / 게시 할 수 있습니까 ? 답변에서 언급했듯이File
객체는 파일 시스템의 위치에 대한 참조와 같으므로 실제 파일 없이는 시뮬레이션하기가 어렵습니다. 그러나 함수에 aFileReader
또는 aFileInputStream
가 있으면 파일이 아닌 입력을 허용하도록 코드를 쉽게 수정할 수 있습니다.