写入文件和I / O.

时间:2015-07-26 03:21:36

标签: java file io

我正在尝试编写一个获取用户输入的程序,然后将其写入名为userStrings.txt的输出文件中。我也试图在用户输入“完成”后停止处理,但我不知道如何完成此操作。

这是我的代码:

import java.io.*;
import java.util.Scanner;

public class Murray_A04Q2 {
    public static void main(String[] args) throws IOException {


    // Name of the file
        String fileName = "userStrings.txt";

        Scanner scan = new Scanner(System.in);

        try {
            // FileReader reading the text files in the default encoding.
                FileWriter fileWriter = new FileWriter("userStrings.txt");

            // Wrapping FileReader in BufferedReader.
                BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);

                bufferedWriter.write("A string");
                bufferedWriter.write("Another string");
                bufferedWriter.write("Yet more text...");
                System.out.println("Enter something, DONE to quit: ");
                String input = scan.nextLine();

            // Closing file
                bufferedWriter.close();
        }

        catch (IOException ex){
            System.out.println("Error writing to file " + "userStrings.txt" + "");
        }


    } // End of method header
} // End of class header

为了写入文件,我仍然使用System.out.println吗?是bufferedWriter.write甚至是必要的?我只是想了解I / O并更好地写入文件。

谢谢!

2 个答案:

答案 0 :(得分:3)

  

为了写入文件,我还使用System.out.println吗?

没有。这会写入标准输出,而不是文件。

如果您使用的是println,那么您需要将BufferedWriterPrintWriter打包在一起。 (查看记录System字段的out类的javadoc。)

  

并且是bufferedWriter.write甚至是必要的吗?

如果您要直接写入BufferedWriter然后是,那么有必要,尽管您可能需要一个合适的“行尾”序列。这就是它变得有点混乱的地方,因为不同的平台有不同的原生“行尾”序列。 (如果使用PrintWriterprintln方法会选择正确的方法用于执行平台。)

  

我也试图在用户输入“完成”后停止处理,但我不知道如何完成此操作。

提示:阅读Scanner课程和System.in

答案 1 :(得分:0)

在您从控制台获取输入的同时,运行while循环以测试input不等于"done"。在while循环内,将input添加到您的文件中,然后获取下一行输入。

while(!input.toLowerCase().Equals("done"))
{
    bufferedWriter.write(input);
    input = scan.nextLine();
}