【发布时间】:2015-01-06 14:59:06
【问题描述】:
我想交换 java 文件中的最后两个单词。 该文件名为 text_d.txt,其中包含:
Student learns programming java.
这是代码(如下)。输出是一样的,我不明白为什么它没有改变。
import java.nio.*;
import java.io.*;
import java.lang.*;
public class Test3 {
public static void main(String[] args) throws Exception {
String s2="text_t.txt";
File _newf = new File("text_d.txt");
changeOrder(_newf);
}
public static void changeOrder(File f) throws Exception {
FileInputStream _inp=new FileInputStream(f.getAbsolutePath());
BufferedReader _rd=new BufferedReader(new InputStreamReader(_inp));
String _p=_rd.readLine();
while (_p != null) {
String [] _b = _p.split(" ");
for(int i = 0; i <= _b.length; i++) {
if(i == 2) {
String aux=_b[i];
_b[i]=_b[i+1];
_b[i+1]=aux;
break;
}
}
_p=_rd.readLine();
}
}
}
【问题讨论】:
-
你的预期输出是什么?
-
@atishshimpi 预期输出是学生学习 java 编程
-
您想更改文件中的单词顺序吗?现在您只是更改了它们在“_b”数组中的顺序,您没有在任何地方保存对文件的更改。
-
你不会在任何地方输出任何东西。您将这些行读入内存,然后操作内存。文件未更改。
-
@AliLotfi 是的,你是对的,要更改其内容,我必须再次在文件中写入数组