Java에서 (텍스트) 파일을 작성하고 쓰는 가장 간단한 방법은 무엇입니까?
답변
아래의 각 코드 샘플은 throw 될 수 있습니다 IOException
. 간결성을 위해 try / catch / finally 블록은 생략되었습니다. 예외 처리에 대한 정보는 이 학습서 를 참조하십시오 .
아래의 각 코드 샘플은 파일이 이미 존재하는 경우 파일을 덮어 씁니다.
텍스트 파일 만들기 :
PrintWriter writer = new PrintWriter("the-file-name.txt", "UTF-8");
writer.println("The first line");
writer.println("The second line");
writer.close();
이진 파일 만들기 :
byte data[] = ...
FileOutputStream out = new FileOutputStream("the-file-name");
out.write(data);
out.close();
Java 7 이상 사용자는 Files
클래스를 사용하여 파일에 쓸 수 있습니다.
텍스트 파일 만들기 :
List<String> lines = Arrays.asList("The first line", "The second line");
Path file = Paths.get("the-file-name.txt");
Files.write(file, lines, StandardCharsets.UTF_8);
//Files.write(file, lines, StandardCharsets.UTF_8, StandardOpenOption.APPEND);
이진 파일 만들기 :
byte data[] = ...
Path file = Paths.get("the-file-name");
Files.write(file, data);
//Files.write(file, data, StandardOpenOption.APPEND);
답변
Java 7 이상에서 :
try (Writer writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("filename.txt"), "utf-8"))) {
writer.write("something");
}
그래도 유용한 유틸리티가 있습니다.
- commons-io의 FileUtils.writeStringtoFile (..)
- 구아바의 Files.write (..)
참고 또한 그 수 를 사용 FileWriter
하지만, 종종 나쁜 생각 기본 인코딩을 사용 – 명시 적으로 인코딩을 지정하는 것이 가장 좋습니다.
아래는 Java 7 이전의 원래 답변입니다.
Writer writer = null;
try {
writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("filename.txt"), "utf-8"));
writer.write("Something");
} catch (IOException ex) {
// Report
} finally {
try {writer.close();} catch (Exception ex) {/*ignore*/}
}
파일 읽기, 쓰기 및 작성 (NIO2 포함) 도 참조하십시오 .
답변
파일에 작성하려는 컨텐츠가 이미 있고 (즉석에서 생성되지 않은 경우) java.nio.file.Files
기본 I / O의 일부로 Java 7에 추가하면 목표를 달성하는 가장 간단하고 효율적인 방법을 제공합니다.
기본적으로 파일을 작성하고 쓰는 것은 한 줄로, 하나의 간단한 메소드 호출입니다 !
다음 예제는 6 개의 다른 파일을 작성하고 사용하여 사용 방법을 보여줍니다.
Charset utf8 = StandardCharsets.UTF_8;
List<String> lines = Arrays.asList("1st line", "2nd line");
byte[] data = {1, 2, 3, 4, 5};
try {
Files.write(Paths.get("file1.bin"), data);
Files.write(Paths.get("file2.bin"), data,
StandardOpenOption.CREATE, StandardOpenOption.APPEND);
Files.write(Paths.get("file3.txt"), "content".getBytes());
Files.write(Paths.get("file4.txt"), "content".getBytes(utf8));
Files.write(Paths.get("file5.txt"), lines, utf8);
Files.write(Paths.get("file6.txt"), lines, utf8,
StandardOpenOption.CREATE, StandardOpenOption.APPEND);
} catch (IOException e) {
e.printStackTrace();
}
답변
public class Program {
public static void main(String[] args) {
String text = "Hello world";
BufferedWriter output = null;
try {
File file = new File("example.txt");
output = new BufferedWriter(new FileWriter(file));
output.write(text);
} catch ( IOException e ) {
e.printStackTrace();
} finally {
if ( output != null ) {
output.close();
}
}
}
}
답변
다음은 파일을 작성하거나 덮어 쓰는 예제 프로그램입니다. 긴 버전이므로 더 쉽게 이해할 수 있습니다.
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
public class writer {
public void writing() {
try {
//Whatever the file path is.
File statText = new File("E:/Java/Reference/bin/images/statsTest.txt");
FileOutputStream is = new FileOutputStream(statText);
OutputStreamWriter osw = new OutputStreamWriter(is);
Writer w = new BufferedWriter(osw);
w.write("POTATO!!!");
w.close();
} catch (IOException e) {
System.err.println("Problem writing to the file statsTest.txt");
}
}
public static void main(String[]args) {
writer write = new writer();
write.writing();
}
}
답변
Java로 파일을 작성하고 쓰는 매우 간단한 방법 :
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
public class CreateFiles {
public static void main(String[] args) {
try{
// Create new file
String content = "This is the content to write into create file";
String path="D:\\a\\hi.txt";
File file = new File(path);
// If file doesn't exists, then create it
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
// Write in file
bw.write(content);
// Close connection
bw.close();
}
catch(Exception e){
System.out.println(e);
}
}
}
답변
사용하다:
try (Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("myFile.txt"), StandardCharsets.UTF_8))) {
writer.write("text to write");
}
catch (IOException ex) {
// Handle me
}
를 사용 try()
하면 스트림이 자동으로 닫힙니다. 이 버전은 짧고 빠르며 (버퍼링) 인코딩을 선택할 수 있습니다.
이 기능은 Java 7에서 도입되었습니다.