为什么我无法打印输入的整个字符?
Why am i not able to print the whole character as i have entered it?
作为一名业余 java 学习者,我正在尝试 java 文件和 I/O 方法的不同组合,因为我尝试了这段代码,我想打印我输入的任何内容通过我的代码 tom.txt
文件(我知道我想要的可以通过使用其他方法轻松完成),我的代码是这样的:
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
我在哪里犯了错误,或者我应该在哪里修改我的程序?,基本上为什么我的代码只打印第一个字符?
你的错误是使用
System.in.read()
读取输入。
System.in.read 只读取输入的一个字节。
更好的替代方法是使用扫描仪。扫描仪可以扫描多个字节的信息,因此它们更适合您的工作。
修复您的代码:
1) 像这样创建一个新的 Scanner 对象:
Scanner scanner = new Scanner(System.in);
2) 将 System.in.read 替换为:
scanner.next()
作为一名业余 java 学习者,我正在尝试 java 文件和 I/O 方法的不同组合,因为我尝试了这段代码,我想打印我输入的任何内容通过我的代码 tom.txt
文件(我知道我想要的可以通过使用其他方法轻松完成),我的代码是这样的:
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
我在哪里犯了错误,或者我应该在哪里修改我的程序?,基本上为什么我的代码只打印第一个字符?
你的错误是使用
System.in.read()
读取输入。
System.in.read 只读取输入的一个字节。
更好的替代方法是使用扫描仪。扫描仪可以扫描多个字节的信息,因此它们更适合您的工作。
修复您的代码:
1) 像这样创建一个新的 Scanner 对象:
Scanner scanner = new Scanner(System.in);
2) 将 System.in.read 替换为:
scanner.next()