首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当单词位于不同行时,更改它们在文件中的顺序

当单词位于不同行时,更改它们在文件中的顺序
EN

Stack Overflow用户
提问于 2015-01-07 22:26:50
回答 2查看 43关注 0票数 0

我想交换一些字符串在file.This中的位置是输入:

代码语言:javascript
复制
 Student learns programming 
 java. Teacher rates 
 student.

我想要更改4 words.It句子中最后两个单词的顺序,如果只有一行可以,但当我得到2行时该如何做:例如,我想更改编程和java的顺序,预期输出如下:

代码语言:javascript
复制
 Student learns java
 programming.Teacher rates
 student.

我尝试了如下代码(进行反转的代码的一部分,但输出是一个空文件):

代码语言:javascript
复制
        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();
    }

    }
EN

回答 2

Stack Overflow用户

发布于 2015-01-07 22:28:10

在所有顶级流/写入器/读取器上调用flushclose

在您的处理结束时。或者直接给close打电话。这应该是

解决你的问题。

票数 0
EN

Stack Overflow用户

发布于 2015-01-07 22:28:19

尝试刷新或关闭输出流:

代码语言:javascript
复制
_buffwriter.flush();
_buffwriter.close();

实际上,你最终应该关闭所有的流:

代码语言:javascript
复制
BufferedWriter _buffwriter= null;
try {
    _buffwriter=new BufferedWriter(_prt);
    // the rest of your code

} finally {
    if (_buffwriter != null) {
        _buffwriter.close();
    }
}

对每个流(_inp等)使用相同的处理方式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27821613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档