java读取txt文件遇到空格对内容定列,将第二列以abc开头的行内容另存一文件中
展开全部
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
public class $ {
public static void main(String[] args) {
File file = new File("D://test.txt");
BufferedReader in = null;
PrintWriter out = null;
try {
in = new BufferedReader(new FileReader(file));
String str = "";
String result = "";
while ((str = in.readLine()) != null && str.length() > 0) {
//多个连续空格替换成一个空格然后通过空格分割成数组
String[] arr = str.replaceAll(" +", " ").split(" ");
//数组第二个
if (arr.length > 1 && arr[1].startsWith("abc")) {
result += str + "\r\n";
}
}
out = new PrintWriter("D://test1.txt");
out.write(result);
System.out.println(result);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
out.flush();
out.close();
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
更多追问追答
追问
如果将数组位数往下计算,应该怎么写呢?从二位或三位以abc开始的呢
追答
//数组第二个
if (arr.length > 1 && arr[1].startsWith("abc")) {
result += str + "\r\n";
}
修改这里的判断
arr[1] 修改这里索引,表示第几列 .. 前提确保当前行有那么多列
arr[1].startsWith("abc") 如果不是以abc开头,如 cabc 可以使用indexOf("abc") == ?判断
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询