JAVA写了一段代码,目的是往磁盘写一个txt文件,但不成功。

新手初学。是想往C盘写一个txt文件,文件名称和文件内容通过手动输入,发现重名后,重新输入一个文件名。但现在输入文件名后就没有反映了,里面输出创建成功的语句也没有出来。请... 新手初学。是想往C盘写一个txt文件,文件名称和文件内容通过手动输入,发现重名后,重新输入一个文件名。但现在输入文件名后就没有反映了,里面输出创建成功的语句也没有出来。请高手给看下哪里问题
import java.io.*;
import java.util.*;
class ListFileDemo
{
public static void main(String args[])
{
System.out.println("请输入一个要写入的字符串:");
Scanner scaString=new Scanner(System.in);
String str=scaString.next();
System.out.println("请输入一个带.txt的文件名称:");
Scanner scaFile=new Scanner(System.in);
String filePath=scaFile.next();
File file=new File("c:\\"+filePath);
if(file.exists())
{System.out.println("文件已存在,是否覆盖?(y\\n)");
Scanner scaYN=new Scanner(System.in);
String stYN=scaYN.next();
if(stYN.equals("y"))
{
try{
FileWriter fw=new FileWriter(file);
fw.write(str);
System.out.println("文件创建成功!");
fw.close();
}catch(IOException e){
e.printStackTrace();
System.out.println("输出文件错误!!!");
}
}
else if(stYN.equals("n"))
{
System.out.println("请重新输入一个文件名:");
Scanner scaFile2=new Scanner(System.in);
String filePath2=scaFile2.next();
File file2=new File("c:\\"+filePath2);

try{
FileWriter fw=new FileWriter(file2);
fw.write(str);
System.out.println("文件创建成功!");
fw.close();
}catch(IOException e){
e.printStackTrace();
System.out.println("输出文件错误!!!");
}
}
}

}
}
展开
 我来答
957816783
2014-08-16 · TA获得超过234个赞
知道答主
回答量:91
采纳率:100%
帮助的人:45.7万
展开全部
给你改了下,你看看
import java.io.*;
import java.util.*;
class ListFileDemo {
public static void main(String args[]) {
System.out.println("请输入一个要写入的字符串:");
Scanner scaString = new Scanner(System.in);
String str = scaString.next();
System.out.println("请输入一个带.txt的文件名称:");
Scanner scaFile = new Scanner(System.in);
String filePath = scaFile.next();
File file = new File("c:\\" + filePath);
if (file.exists()) {
System.out.println("文件已存在,是否覆盖?(y\\n)");
Scanner scaYN = new Scanner(System.in);
String stYN = scaYN.next();
if (stYN.equals("y")) {
try {
FileWriter fw = new FileWriter(file);
fw.write(str);
System.out.println("文件创建成功!");
fw.close();
} catch (IOException e) {
e.printStackTrace();
System.out.println("输出文件错误!!!");
}
} else if (stYN.equals("n")) {
System.out.println("请重新输入一个文件名:");
Scanner scaFile2 = new Scanner(System.in);
String filePath2 = scaFile2.next();
File file2 = new File("c:\\" + filePath2);
createFile(file2,str);
}
}else {
createFile(file,str);
}
}
public static void createFile(File file,String content){
try {
FileWriter fw = new FileWriter(file);
fw.write(content);
System.out.println("文件创建成功!");
fw.close();
} catch (IOException e) {
e.printStackTrace();
System.out.println("输出文件错误!!!");
}
}
}
追问
呵呵,下面少了个不重名时需要对应的else。
用方法真好,我上面那块输入y以后也可以换成你这个方法,看来我这脑子里还没形成模块化思维呀。
另外这段代码还有个问题,就是第二次输入文件名后,不再询问是否重名就直接覆盖输出了。
怎样让它只要有重名就一直重复让输文件名。
我把上面的if改成了 for循环,但是没弄成。
追答
package test;
import java.io.*;
import java.util.*;
class FileCreateDemo {
public static void main(String args[]) {
System.out.println("请输入一个要写入的字符串:");
Scanner scaString = new Scanner(System.in);
String str = scaString.next();
while(true){
System.out.println("请输入一个带.txt的文件名称:");
Scanner scaFile = new Scanner(System.in);
String filePath = scaFile.next();
File file = new File("c:\\" + filePath);
if (file.exists()) {
System.out.println("文件已存在,是否覆盖?(y\\n)");
Scanner scaYN = new Scanner(System.in);
String stYN = scaYN.next();
if (stYN.equals("y")) {
try {
FileWriter fw = new FileWriter(file);
fw.write(str);
System.out.println("文件创建成功!");
fw.close();
} catch (IOException e) {
e.printStackTrace();
System.out.println("输出文件错误!!!");
}
} else if (stYN.equals("n")) {
continue;
}
}else {
createFile(file,str);
}
}
}
public static void createFile(File file,String content){
try {
FileWriter fw = new FileWriter(file);
fw.write(content);
System.out.println("文件创建成功!");
fw.close();
} catch (IOException e) {
e.printStackTrace();
System.out.println("输出文件错误!!!");
}
}
}
w904922993
2014-08-16 · 超过10用户采纳过TA的回答
知道答主
回答量:38
采纳率:0%
帮助的人:16.9万
展开全部
把错误提示信息也粘出来,用同一个scanner会好点,不需要在新new出一个scanner来,试一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式