java获取字符串行数据_java 截取文件每行字符串
今天有邮件让修改一批数据,格式如胸泌科护站(即将删除)24080225骨1科护站(即将删除)24080226骨2科护站(即将删除)2408022A急救中心外科护站(即将删除)2408022G急救中心急诊科护站(即将删除)2408022H…处理时编号有用,也就是要截取后几位,因为编号长度是固定的,在UE中没找到办法,用sed ,awk 做shell应该也可以实现,后来想搞个java类来实现,跨平吧嘛
今天有邮件让修改一批数据,格式如
胸泌科护站(即将删除)24080225
骨1科护站(即将删除)24080226
骨2科护站(即将删除)2408022A
急救中心外科护站(即将删除)2408022G
急救中心急诊科护站(即将删除)2408022H
…
处理时编号有用,也就是要截取后几位,因为编号长度是固定的,在UE中没找到办法,用sed ,awk 做shell应该也可以实现,后来想搞个java类来实现,跨平吧嘛,环境一般都有
代码如下
import java.io.*;
public class Substr{
public static void main(String[] args){
Substr sub = new Substr();
//sub.readFileByLines("c:\\a.txt",-8);
if(args.length==2){
sub.readFileByLines(args[0],Integer.parseInt(args[1]));
}else if(args.length==3){
sub.readFileByLines(args[0],Integer.parseInt(args[1]),Integer.parseInt(args[2]));
} else{
System.out.println("参数有误!");
}
}
private void readFileByLines(String fileName,int start,int length) {
File file = new File(fileName);
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(file));
String tempString = null;
String printStr = "";
while ((tempString = reader.readLine()) != null) {
if(tempString.length()>(start+length)){
printStr=tempString.substring(start, start+length);
}
System.out.println(printStr);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e1) {
}
}
}
}
private void readFileByLines(String fileName,int start){
File file = new File(fileName);
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(file));
String tempString = null;
String printStr = "";
while ((tempString = reader.readLine()) != null) {
if(tempString.length()>Math.abs(start)){
if(start<0){
printStr = tempString.substring(tempString.length()+start, tempString.length());
}
}
System.out.println(printStr);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e1) {
}
}
}
}
}
运行效果
C:\>java Substr "c:\a.txt" -8
24080225
24080226
2408022A
2408022B
2408022D
2408022F
24080222
C:\>java Substr "c:\a.txt" 2 10
科护站(即将删除)2
科护站(即将删除)2
科护站(即将删除)2
中心手术室(即将删除
中心内2科护站(即将
室(即将删除)240
打赏
微信扫一扫,打赏作者吧~
更多推荐
所有评论(0)