我想交换一些字符串在file.This中的位置是输入:
Student learns programming
java. Teacher rates
student.我想要更改4 words.It句子中最后两个单词的顺序,如果只有一行可以,但当我得到2行时该如何做:例如,我想更改编程和java的顺序,预期输出如下:
Student learns java
programming.Teacher rates
student.我尝试了如下代码(进行反转的代码的一部分,但输出是一个空文件):
public static void changeOrd(File f,File out) throws IOException
{
FileInputStream _inp=new FileInputStream(f.getAbsolutePath());
BufferedReader _readin=new BufferedReader(new InputStreamReader(_inp));
PrintWriter _prt=new PrintWriter(out);
BufferedWriter _buffwriter=new BufferedWriter(_prt);
String _string=_readin.readLine();
while(_string!=null)
{
String[] _v=_string.split(" ");
int increm=0,i=0;
while(!_v[i+1].endsWith("."))
{
_buffwriter.write(_v[i]+" ");
increm++;
i++;
}
if(i==2 && _v[i+1]!=null){
_buffwriter.write(_v[i+1]+" ");
_buffwriter.write(_v[i]+" ");
}
_string=_readin.readLine();
}
}发布于 2015-01-07 22:28:10
在所有顶级流/写入器/读取器上调用flush和close
在您的处理结束时。或者直接给close打电话。这应该是
解决你的问题。
发布于 2015-01-07 22:28:19
尝试刷新或关闭输出流:
_buffwriter.flush();
_buffwriter.close();实际上,你最终应该关闭所有的流:
BufferedWriter _buffwriter= null;
try {
_buffwriter=new BufferedWriter(_prt);
// the rest of your code
} finally {
if (_buffwriter != null) {
_buffwriter.close();
}
}对每个流(_inp等)使用相同的处理方式。
https://stackoverflow.com/questions/27821613
复制相似问题