PrintWriter 不保存所有字符
PrintWriter doesn't save all characters
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
时,程序只保存一个字符。为什么?
在out.close()
之前添加out.flush()
。
您需要在关闭之前将字节刷新到磁盘..
这个((word = in.next()) != null)
会抛出异常。
当没有更多元素时,in.next()
不会 return null。看看 API
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
时,程序只保存一个字符。为什么?
在out.close()
之前添加out.flush()
。
您需要在关闭之前将字节刷新到磁盘..
这个((word = in.next()) != null)
会抛出异常。
当没有更多元素时,in.next()
不会 return null。看看 API