Java文件程序问题,用命令行输入参数,为啥从“data.txt”读出时无限输出问号
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Main11 {
public static void main(String[]args)
{
try
{
FileOutputStream f=new FileOutputStream("data.txt");
if(args.length==0) //没有向命令行输入参数的情况
System.out.println("No command line arguments");
else //向命令行输入参数
{
System.out.println("Command line arguments were: ");
for(int i=0;i<args.length;i++) //循环输出命令行数组接收到的参数
{ System.out.println("Argument"+(i+1)+":"+args[i]);
byte[]b=args[i].getBytes();
f.write(b);
f.flush();}
f.close();
}
}
catch(IOException e)
{
System.out.println("发生异常"+e);
e.printStackTrace();
}
try
{
FileInputStream f1=new FileInputStream("data.txt");
int k;
int b=f1.read();
for(k=0;k!=-1;k++)
{
System.out.print((char)b);
b=f1.read();
}
f1.close();
}
catch(IOException e)
{
System.out.println("发生异常"+e);
e.printStackTrace();
}
}
}
最佳答案
后边的循环的条件是一直成立的啊,
追问:
为什么求解答!
追问:
懂了! 谢谢
追问:
我竟然没看见这么简单的问题,谢了
其他回答
其它网友回答:
出现问号是编码的问题,不识别中文;无限输出是因为你的for循环没有提供有效退出的条件。
其它网友回答:
输出问号肯定是中文编码问题,你的输入参数有没有中文,试一下输入参数没有中文看有没有问号出现
其它网友回答:
无限死循环了
其它网友回答:
使用Notepad++