web-dev-qa-db-ja.com

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();
    }
}

}

33

Java 7以降、 Files を使用する1つのライナー:

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

これを行うには、Java 7 new File APIを使用します。

コードサンプル: `

public class FileWriter7 {
    public static void main(String[] args) throws IOException {
        List<String> 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<String> aLines, String aFileName) throws IOException {
        Path path = Paths.get(aFileName);
        Files.write(path, aLines, StandardCharsets.UTF_8);
    }
}

`

19
Dilip Kumar

Apache Commonsの FileUtils を使用できます。

import org.Apache.commons.io.FileUtils;

final File file = new File("test.txt");
FileUtils.writeStringToFile(file, "your content", StandardCharsets.UTF_8);
15
Jakub H

ファイルの追加 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();
    }
7
newuser

Files.write()@Dilip Kumarが言ったシンプルなソリューション。私は問題に直面するまでその方法を使用していましたが、行セパレーター(Unix/Windows)CR LFには影響しません。

そこで、Java 8ストリームファイルの書き込み方法を使用して、その場でコンテンツを操作できるようにします。:)

List<String> 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、大文字、フィルタリングなどのあらゆる種類の魔法を実行したりできます。

4
Laszlo Lugosi

あなたのコードは最も簡単です。しかし、私は常にコードをさらに最適化しようとします。これがサンプルです。

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());
    }
4
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);
3
laughing buddha