을 Heres 코드 :이 FileWriter는 어떻게 작동합니까?
java.io.IOException: Stream closed
at sun.nio.cs.StreamEncoder.ensureOpen(Unknown Source)
at sun.nio.cs.StreamEncoder.write(Unknown Source)
at sun.nio.cs.StreamEncoder.write(Unknown Source)
at java.io.OutputStreamWriter.write(Unknown Source)
at FileCharCopier.main(FileCharCopier.java:18)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)
라인 (18) : 나는이 같은 디렉토리에 모두 SCJP 및 scjpcopy.txt이
import java.io.*;
public class FileCharCopier
{
public static void main(String args[]) throws IOException
{
File f1=new File("scjp.txt");
File f2=new File("scjpcopy.txt");
FileReader in=new FileReader(f1);
FileWriter out=new FileWriter(f2);
int c;
while((c=in.read())!=1)
{
out.write(c);
in.close();
out.flush();
out.close();
}
}
}
내가 프로그램을 실행할 때
하지만, 나는 이러한 오류를 얻을 참고
out.write(c);
누군가가 오류를 수정할 수 있습니까?
당신에게 두 번째 루프 라운드에서 입력 및 출력 스트림을 모두 닫으므로 예외가 발생합니다. – MadProgrammer
초등 오류 이외에 주석에 대한 대답이 나와 있지만 확실히 문자를 복사해서는 안됩니다. 시각. char 배열을 사용해야합니다. 'while ((count = in.read (array))> 0) out.write (array, 0, count);' 그것은 몇 배나 빠릅니다. 그렇지 않으면 BufferedReader와 BufferedWriter. – EJP