想使用下面这段代码输入一个字符进行判断是否备份,但输入‘y'后,打印出来的却不是’y'
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入要备份的文件名: ");
fileName = bf.readLine();
System.out.println("要备份的文件是: " + fileName);
System.out.println("是否开始备份?(Y/N)");
char ch;
ch = bf.read();
System.out.println(ch);
请各位朋友给看看,谢谢。
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入要备份的文件名: ");
fileName = bf.readLine();
System.out.println("要备份的文件是: " + fileName);
System.out.println("是否开始备份?(Y/N)");
char ch;
ch = bf.read();
System.out.println(ch);
请各位朋友给看看,谢谢。
Scanner s = new Scanner(System.in);
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入要备份的文件名: ");
String fileName;
fileName = bf.readLine();
System.out.println("要备份的文件是: " + fileName);
System.out.println("是否开始备份?(Y/N)");
int ch = 0;
ch = bf.read();
System.out.println((char)ch);
}
String ch = null;
ch = bf.readLine();
System.out.println(ch);
2.bf.readln()之后,再用bf.read()是有问题的,这两个不要连在一起用,解决的办法是,在bf.read()之前,新建立一个和上而一样的bf。也就是要重复一下BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
3.如果你想把结果输出到文件,你还要再建立一个FileWriter或FileOutputStream.自己查一下API文档。
4.最后不要忘了把所有的流都关闭。输出流关闭之前还要调用一下flush()方法。
ch 是int 型 想输出Y 就得类型转换。。
如果要你想程序输出是一个"Y",你可以就它返回的结果进行一个强行转换:char c = (char)bf.read();
或者用bf.readLine()方法来读.
int ch = 0;
ch = bf.read();
要强制转换类型,测试代码如下:import java.io.*;public class Test {
public static void main(String[] args) {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println("请输入要备份的文件名: ");
String fileName = bf.readLine();
System.out.println("要备份的文件是: " + fileName);
System.out.println("是否开始备份?(Y/N)");
char ch;
ch = (char)bf.read();
System.out.println(ch);
}
catch(Exception e)
{
System.err.println(e);
}
}
}
ch=(char)(bf.read())
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入要备份的文件名: ");
String fileName = bf.readLine();
System.out.println("要备份的文件是: " + fileName);
System.out.println("是否开始备份?(Y/N)");
char ch;
ch = (char) bf.read();
System.out.println(ch);
ch = bf.read();
或者
int ch ;
ch = bf.read();
都没问题!
我的jdk也是1.6的!测试了没问题!
可以赋值?强转为char再赋值...
1.要强制转换成char类型的
2.BufferedReader流需要关闭,因为他有缓存
这样会在开发的时候会给出错误提示,
这样可以根据提示修改错误,关于代码问题可以参加13楼的:
System.out.println("请输入要备份的文件名: ");
String fileName = bf.readLine();
System.out.println("要备份的文件是: " + fileName);
System.out.println("是否开始备份?(Y/N)");
char ch = 0;
ch = (char) bf.read();
System.out.println(ch);
bf.close();实验证明这样是可以的