class Start
{
File plikIN;
Scanner in;
PrintWriter out;
Start(String input, String output)
{
plikIN = new File(input);
try{
in = new Scanner(plikIN);
out = new PrintWriter(output);
} catch (FileNotFoundException e) {System.out.println("Nie odnaleziono podanego pliku\n"+e);}
}
private void saveing() throws IOException
{
String word;
int wordLength;
String wordTable[];
char c;
while((word = in.next()) != null)
{
wordLength = word.length();
wordTable = new String[wordLength];
for(int k=0; k<wordTable.length; ++k)
{
c = word.charAt(k);
out.println(c);
}
}
out.close();
}
public static void main(String[] args) throws IOException
{
String nazwaPlikuWejsciowego = args[0];
String nazwaPlikuWyjsciowego = args[1];
Start doit = new Start(nazwaPlikuWejsciowego, nazwaPlikuWyjsciowego);
doit.saveing();
}
}
我的问题是保存到文件。在上面的saveing
方法之后,该文件不包含任何单个字符。例如,当我将out.close()
移动到while
时,该文件包含一个单词。 out.close()
位于for
时,程序仅保存一个字符。为什么呢?
答案 0 :(得分:3)
在out.flush()
之前添加out.close()
。
您需要在关闭之前将字节刷新到磁盘。
答案 1 :(得分:0)
此((word = in.next()) != null)
会抛出异常。
当没有更多元素时,in.next()
不返回null。看看API