作为业余java学习者,我尝试了不同的java文件和I / O方法组合,因为我尝试了这段代码,我想通过我的代码打印我输入文件tom.txt
的任何内容(i通过使用其他方法可以轻松地理解我想要的东西),我的代码是:
import java.io.*;
public class Dhoom3
{
public static void main(String[] args) throws IOException, NullPointerException
{
FileWriter b = new FileWriter(new File("tom.txt"));
System.out.println(" enter whatever : ");
b.write(System.in.read());
b.flush();
System.out.println("the printed characters are");
FileInputStream r = new FileInputStream("tom.txt");
BufferedInputStream k = new BufferedInputStream(r);
int g;
while((g = k.read())!= -1)
{
System.out.println((char)g);
}
}
}
我的输出是这样的:
enter whatever :
stack
the printed characters are
s
我犯了哪些错误,或者我应该在哪里修改我的程序?,基本上为什么我的代码只打印第一个字符?
答案 0 :(得分:1)
您的错误正在使用
System.in.read()
阅读输入。
System.in.read只读取一个输入字节。
更好的替代方法是使用扫描仪。扫描仪可以扫描多个字节的信息,因此它们更适合您正在做的事情。
修复您的代码:
1)创建一个新的Scanner对象,如下所示:
Scanner scanner = new Scanner(System.in);
2)将System.in.read替换为:
scanner.next()