在java中编写文本文件的最简单方法是什么?

您好,我想知道在java中编写文本文件最简单(也是最简单)的方法是什么。 请简单,因为我是初学者:D我在网上搜索并找到了这段代码,但我理解了50%的代码。

import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; public class WriteToFileExample { public static void main(String[] args) { try { String content = "This is the content to write into file"; File file = new File("C:/Users/Geroge/SkyDrive/Documents/inputFile.txt"); // if file doesnt exists, then create it if (!file.exists()) { file.createNewFile(); } FileWriter fw = new FileWriter(file.getAbsoluteFile()); BufferedWriter bw = new BufferedWriter(fw); bw.write(content); bw.close(); System.out.println("Done"); } catch (IOException e) { e.printStackTrace(); } } 

}

使用Java 7及更高版本,使用文件 :

 String text = "Text to save to file"; Files.write(Paths.get("./fileName.txt"), text.getBytes()); 

您可以使用JAVA 7新的File API来完成此操作。

代码示例:`

 public class FileWriter7 { public static void main(String[] args) throws IOException { List lines = Arrays.asList(new String[] { "This is the content to write into file" }); String filepath = "C:/Users/Geroge/SkyDrive/Documents/inputFile.txt"; writeSmallTextFile(lines, filepath); } private static void writeSmallTextFile(List aLines, String aFileName) throws IOException { Path path = Paths.get(aFileName); Files.write(path, aLines, StandardCharsets.UTF_8); } } 

`

您可以使用Apache Commons的FileUtils :

 import org.apache.commons.io.FileUtils; final File file = new File("test.txt"); FileUtils.writeStringToFile(file, "your content", StandardCharsets.UTF_8); 

附加文件FileWriter(String fileName,boolean append)

 try { // this is for monitoring runtime Exception within the block String content = "This is the content to write into file"; // content to write into the file File file = new File("C:/Users/Geroge/SkyDrive/Documents/inputFile.txt"); // here file not created here // if file doesnt exists, then create it if (!file.exists()) { // checks whether the file is Exist or not file.createNewFile(); // here if file not exist new file created } FileWriter fw = new FileWriter(file.getAbsoluteFile(), true); // creating fileWriter object with the file BufferedWriter bw = new BufferedWriter(fw); // creating bufferWriter which is used to write the content into the file bw.write(content); // write method is used to write the given content into the file bw.close(); // Closes the stream, flushing it first. Once the stream has been closed, further write() or flush() invocations will cause an IOException to be thrown. Closing a previously closed stream has no effect. System.out.println("Done"); } catch (IOException e) { // if any exception occurs it will catch e.printStackTrace(); } 

你的代码是最简单的。 但是,我总是尝试进一步优化代码。 这是一个样本。

 try (BufferedWriter bw = new BufferedWriter(new FileWriter(new File("./output/output.txt")))) { bw.write("Hello, This is a test message"); bw.close(); }catch (FileNotFoundException ex) { System.out.println(ex.toString()); } 

Files.write()就像@Dilip Kumar所说的简单解决方案。 我以前用那种方式直到我面临一个问题,不能影响行分隔符(Unix / Windows)CR LF。

所以现在我使用Java 8流文件编写方式,允许我动态操作内容。 🙂

 List lines = Arrays.asList(new String[] { "line1", "line2" }); Path path = Paths.get(fullFileName); try (BufferedWriter writer = Files.newBufferedWriter(path)) { writer.write(lines.stream() .reduce((sum,currLine) -> sum + "\n" + currLine) .get()); } 

通过这种方式,我可以指定行分隔符,或者我可以做任何类型的魔术,如TRIM,大写,过滤等。

 String content = "your content here"; Path path = Paths.get("/data/output.txt"); if(!Files.exists(path)){ Files.createFile(path); } BufferedWriter writer = Files.newBufferedWriter(path); writer.write(content); 
 File file = new File("path/file.name"); IOUtils.write("content", new FileOutputStream(file)); 

IOUtils也可以用java 8轻松地写/读文件。