java 保存文件路径的问题

在控制台输入数据并保存到一个自定义的文件(保存的地址要在控制台获得)里,当输入“保存”回车的时候,系统输出:“请输入地址”,然后输入文件要保存的地址(如e:\temp\t... 在控制台输入数据并保存到一个自定义的文件(保存的地址要在控制台获得)里,当输入“保存”回车的时候,系统输出:“请输入地址”,然后输入文件要保存的地址(如e:\temp\test.java),输入“quit”结束.
写程序的时候麻烦写下注释。谢谢了
展开
 我来答
方扰龙晨0HY20b
推荐于2016-03-31
知道答主
回答量:55
采纳率:0%
帮助的人:0
展开全部
public class Test {
public static void main(String[] args) {
Test t = new Test();
t.SystemIn();

}

public void SystemIn() {
// 写入文件路径
String path = null;

// 读入输入内容
BufferedReader read =
new BufferedReader(new InputStreamReader(System.in));

try {
// 保存输入内容
StringBuffer value = new StringBuffer();

// 读入一行内容
String context = read.readLine();
while (context != null) {
if (context.equals("保存")) break;
value.append(context + "\n");
read = new BufferedReader(new InputStreamReader(System.in));
context = read.readLine();
}
System.out.println("请输入地址:");
while(true) {
// 读入路径
read = new BufferedReader(new InputStreamReader(System.in));
if (path == null) {
path = read.readLine();
File file = new File(path);
if (!file.exists()) {
System.out.println("文件不存在,请输入地址:");
path = null;
continue;
}

// 写入文件
PrintWriter print = new PrintWriter(new FileOutputStream(file));
print.write(value.toString());
print.close();
}
if (read.readLine().equals("quit")) {
System.exit(0);
}
}
} catch (IOException e) {
e.printStackTrace();
}

}
}
198901245631
推荐于2018-05-15 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1738万
展开全部
文件保存路径中如果有中文可能会出现乱码,通常获取到的文件中通常都是“iso8859-1”格式,需要转换为“UTF-8”格式。
如:String filePath= new String(path.getByte("iso8859-1"),"UTF-8");进行下强制转换后在进行读取即可。
通常格式有GBK、UTf-8、iso8859-1、GB2312,如果上面的强制转换不成功,依次进行这些格式的尝试,肯定是可以解决问题的。
备注:如果是黑窗口执行的时候报错,那就不是类型转换的错误,而是需要将文件类型另存为UTF-8的文件类型即可。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式