//按照指定字符串截取文本
public static void main(String[] args) {
File file = new File("D:\\sql\\1\\ALL_VIEWS.sql");
String[] ss = readTxt(file);
if (ss == null || ss.length == 0) {
System.out.println("读取txt内容发生错误,txt内容可能为空.");
return;
}
List a = new ArrayList();//获取开始位置
List b = new ArrayList();//获取第二个的位置,并作为第一个的结束位置
for (int i = 0; i < ss.length; i++) {
if (ss[i].contains("--")) {//便利指定字符串
a.add(i);
if (i != 0) {
b.add(i);
}
}
}
for (int j = 0; j < b.size(); j++) {
String filename = String.valueOf(ss[Integer.valueOf(String.valueOf(a.get(j)))]).replaceAll("-- edw_stg.", "");
file = new File("D:\\sql\\2\\" + filename + ".sql");
writeTxt(file, ss, Integer.valueOf(String.valueOf(a.get(j))), Integer.valueOf(String.valueOf(b.get(j))));
}
}
/**
* 写出数组内容从start位置开始共写出length个 到txt文件
*
* @param file 待写出的txt文件的File形式
* @param ss 数组对象
* @param start 开始位置
* @param length 写出长度
* @return 成功返回true 发生错误返回false
*/
private static boolean writeTxt(File file, String[] ss, int start, int length) {
FileWriter fWriter;
try {
fWriter = new FileWriter(file, false);
} catch (IOException e) {
e.printStackTrace();
return false;
}
try {
for (int q = start; q < length; q++) {
fWriter.write(ss[q] + "\r\n");
}
} catch (IOException e) {
e.printStackTrace();
if (!closeFileWriter(fWriter)) {
fWriter = null;
}
return false;
}
if (!closeFileWriter(fWriter)) {
fWriter = null;
}
return true;
}
/**
* 关闭文件流
*
* @param fWriter
* @return 成功关闭返回true, 发生错误返回false
*/
private static boolean closeFileWriter(FileWriter fWriter) {
if (fWriter == null) {
return false;
}
try {
fWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
return true;
}
/**
* 读取txt文件内容,返回该文本内容的String[]形式
*
* @param file txt文件的File形式
* @return 该文本内容的String[]形式 若读取发生错误 则返回null
*/
private static String[] readTxt(File file) {
Scanner scanner;
try {
scanner = new Scanner(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
return null;
}
String string = "";
/**
* 读取到的每一行用,分割
*/
while (scanner.hasNext()) {
string += scanner.nextLine() + ",";
}
scanner.close();
return string.split(",");
}
感谢
gdmmd
参考资料
https://zhidao.baidu.com/question/983767169515038339.html