首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >写入文件和I/O

写入文件和I/O
EN

Stack Overflow用户
提问于 2015-07-26 03:21:35
回答 2查看 351关注 0票数 0

我正在编写一个程序,该程序获取用户输入,然后写入一个名为userStrings.txt的输出文件。我还试图在用户输入“完成”后停止处理,但我不知道如何完成这一任务。

这是我的代码:

代码语言:javascript
运行
复制
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.printlnbufferedWriter.write是必要的吗?我只是想更好地理解I/O和写文件。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-26 03:29:40

为了写入文件,我是否仍然使用System.out.println?

不是的。它写入标准输出,而不是写入您的文件。

如果您正在使用println,那么您需要用一个PrintWriter包装您的BufferedWriter。(查看System类的javadocs,其中记录了out字段。)

bufferedWriter.write是必要的吗?

如果您要直接写入BufferedWriter,那么是的,这是必要的,尽管您可能需要一个适当的“行尾”序列。这使得它变得有点混乱,因为不同的平台有不同的本机“行尾”序列。(如果使用PrintWriter,则println方法将选择用于执行平台的正确方法。)

我还试图在用户输入“完成”后停止处理,但我不知道如何完成这一任务。

提示:阅读关于Scanner类和System.in的文章。

票数 3
EN

Stack Overflow用户

发布于 2015-07-26 03:30:59

在您从控制台获取输入的下面,运行一个while循环来测试input不等于"done"。在while循环中,将input添加到文件中,并获取下一行输入。

代码语言:javascript
运行
复制
while(!input.toLowerCase().Equals("done"))
{
    bufferedWriter.write(input);
    input = scan.nextLine();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31633317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档