当前位置: 代码迷 >> Eclipse >> 用java把一个文本文件分为两个
  详细解决方案

用java把一个文本文件分为两个

热度:5   发布时间:2016-04-23 02:02:10.0
用java把一个文本文件分成两个
用java写文本文件,把一个.sci文件分成两个,只是它们的坐标值改一下就行了,不知道怎么修改它们的坐标值,怎么把一个文件分成两个。
<sml:ImageLeft>48.397189336312977</sml:ImageLeft>
<sml:ImageTop>-55.577652310411075</sml:ImageTop>
<sml:ImageRight>8958.8508749688572</sml:ImageRight>
<sml:ImageBottom>-7668.2452920745318</sml:ImageBottom>
那个坐标点就是(top+bottom)/2;
------最佳解决方案--------------------

try {
File file = new File("E:\\test\\changchun.SCI");

File f1 = new File("E:\\test\\changchun1.SCI");
File f2 = new File("E:\\test\\changchun2.SCI");
FileReader fr = new FileReader(file); // 创建BufferedReader对象
FileWriter fos = new FileWriter(f1); // 创建文件输出流
FileWriter fos1 = new FileWriter(f2); // 创建文件输出流
BufferedReader br = new BufferedReader(fr);
BufferedWriter bw = new BufferedWriter(fos); // 创建BufferedWriter对象
BufferedWriter bw1 = new BufferedWriter(fos1); // 创建BufferedWriter对象
String str = null;

while ((str = br.readLine()) != null) {
if (str.startsWith("<sml:ImageTop>")) {
bw.write(str + "\r\n"); // 为读取的文本行添加回车
str = "<sml:ImageTop>" + tfile.getCoordinate() + "</sml:ImageTop>";
bw1.write(str + "\r\n"); // 为读取的文本行添加回车
} else if (str.startsWith("<sml:ImageBottom>")) {
bw1.write(str + "\r\n"); // 为读取的文本行添加回车
str = "<sml:ImageBottom>" + tfile.getCoordinate() + "</sml:ImageBottom>";
bw.write(str + "\r\n"); // 为读取的文本行添加回车
} else {
bw.write(str + "\r\n"); // 为读取的文本行添加回车
bw1.write(str + "\r\n"); // 为读取的文本行添加回车
}
}

br.close(); // 关闭输入流
bw.close(); // 关闭输出流
bw1.close(); // 关闭输出流

} catch (IOException e) {
e.printStackTrace();
}

------其他解决方案--------------------
应该和XML文件解析一样吧!
------其他解决方案--------------------
说真的还是不太明白你的需求,.sci是什么文件,为什么需要修改坐标来拆分?

这些又是什么?
<sml:ImageLeft>48.397189336312977</sml:ImageLeft>
<sml:ImageTop>-55.577652310411075</sml:ImageTop>
<sml:ImageRight>8958.8508749688572</sml:ImageRight>
<sml:ImageBottom>-7668.2452920745318</sml:ImageBottom>
 

------其他解决方案--------------------
反正应该是2进制文件,
用BufferedReader reader = new BufferedReader(new FileReader("E:/xxx.sci"));读取好了,
把想读来的内容再计算,然后再写文件就OK了。。。

引用:
说真的还是不太明白你的需求,.sci是什么文件,为什么需要修改坐标来拆分?

这些又是什么?
<sml:ImageLeft>48.397189336312977</sml:ImageLeft>
<sml:ImageTop>-55.577652310411075</sml:ImageTop>
<sml:ImageRight>8958.8508749688572</sml:ImageRig……

------其他解决方案--------------------
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;   
  相关解决方案