首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何(或)使用PrintWriter类实现输入扫描程序后输入“*”以保存文件和退出的逻辑?

如何(或)使用PrintWriter类实现输入扫描程序后输入“*”以保存文件和退出的逻辑?
EN

Stack Overflow用户
提问于 2019-02-09 09:16:37
回答 1查看 30关注 0票数 0

我试着做些这样的工作:

代码语言:javascript
复制
import java.io.PrintWriter;
import java.io.IOException;
import java.util.Scanner;
import static java.lang.System.in;
import static java.lang.System.out;


class PrintWrit1 
{
    public static void main(String[] args) 
    {
        Scanner input = new Scanner(in);
        out.print("Enter the filename :\t");
        String filename = input.nextLine();
        try(    PrintWriter pw = new PrintWriter(filename))
        {   
            out.println("Enter the file content, enter * after finishing");
            String text;
            while((text=input.nextLine()) != "*")
            {   pw.println(text);   }
            out.println(filename+" is saved and closed");
        }
        catch(IOException ioe)
        { ioe.printStackTrace();}
    }
}

文件被创建,输出被写入,但是当命中ctrl时,文件会被保存,但是下面的语句不会执行,它会突然终止。

如果我输入了*在输入最后一行后,它应该能够执行out.println(filename+" is saved and closed")

当前产出:

代码语言:javascript
复制
D:\JavaEx\FILE-IO>java PrintWrit1
Enter the filename :    sample
Enter the file content, enter * after finishing
line1
line2
*

预期产出:

代码语言:javascript
复制
D:\JavaEx\FILE-IO>java PrintWrit1
Enter the filename :    sample
Enter the file content, enter * after finishing
line1
line2
*
sample is saved and closed
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-09 09:22:04

您正在比较字符串* wrongly.You应该使用equals()方法。请更换

代码语言:javascript
复制
while((text=input.nextLine()) != "*")

代码语言:javascript
复制
while(!(text=input.nextLine()).equals("*"))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54604857

复制
相关文章

相似问题

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