programing

Java 문자열에서 메모리에 파일 개체 만들기

sourcejob 2022. 9. 29. 00:14
반응형

Java 문자열에서 메모리에 파일 개체 만들기

저는 File을 인수로 받아들이는 함수를 가지고 있습니다.문자열 데이터를 함수에 전달하기 위해 새 파일(파일 시스템에 대한 쓰기 액세스 권한이 없음)을 작성/쓰기하고 싶지 않습니다.String 데이터는 파일에 존재하지 않으므로 파일에서 데이터를 읽을 수 없습니다.

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) {
}

아니요. 클래스의 인스턴스File파일 시스템의 경로를 나타냅니다.따라서 이 기능은 파일에서만 사용할 수 있습니다.하지만 아마도 과부하가 있어서InputStream대신?

Java에서 File 객체는 파일 자체가 아니라 디렉토리 또는 파일에 대한 경로를 나타냅니다.파일 시스템에 대한 쓰기 액세스 권한을 가지고 있지 않아도 파일 시스템을 생성할 수 있습니다.File오브젝트 파일(를 들어 FileOutputStream 사용)에 실제로 쓰려는 경우에만 필요합니다.

Fileclass는 I/O에 사용할 실제 핸들이 아닌 파일의 "아이디어"를 나타냅니다.이게 바로 그 이유죠.File클래스에는.exists()파일이 존재하는지 아닌지를 알려준다.(어떻게 파일을File존재하지 않는 오브젝트)

이와는 대조적으로, constructuring,new FileInputStream(new File("/my/file"))는 바이트를 읽을 수 있는 실제 스트림을 제공합니다.

FileReader r = new FileReader(file);

파일 리더를 사용하여 파일을 로드한 후 문자열 버퍼에 내용을 씁니다.

위의 링크는 이를 수행하는 방법의 예를 보여 줍니다.이 답변의 다른 게시물에는 파일을 메모리에 로드하라는 내용이 있으므로 실제 파일을 변경할 계획이 없는 한 쓰기 액세스 권한이 필요하지 않습니다.

언급URL : https://stackoverflow.com/questions/7083698/create-a-file-object-in-memory-from-a-string-in-java

반응형