簡體   English   中英

更改文件中單詞在不同行時的順序

[英]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();
    }

    }

調用flushclose所有頂級流/寫入器/讀取器
在處理結束時。 或只是致電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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM