[英]Changing the order of the words in a file when they are on different lines
我想交換文件中某些字符串的位置。這是輸入:
Student learns programming
java. Teacher rates
student.
我想更改4個單詞的句子中的最后兩個單詞的順序。如果只有一行,那可以,但是當我得到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();
}
}
調用flush
並close
所有頂級流/寫入器/讀取器
在處理結束時。 或只是致電close
。 這應該
解決您的問題。
嘗試刷新或關閉輸出流:
_buffwriter.flush();
_buffwriter.close();
最終,您應該確實關閉所有流:
BufferedWriter _buffwriter= null;
try {
_buffwriter=new BufferedWriter(_prt);
// the rest of your code
} finally {
if (_buffwriter != null) {
_buffwriter.close();
}
}
對每個流(_inp等)使用相同的處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.