zoukankan      html  css  js  c++  java
  • 按照指定字符串截取文本

    //按照指定字符串截取文本
    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] + " ");
    }


    } 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

  • 相关阅读:
    2.变量、数据类型、数据类型转换相关函数
    3.字符串、列表、元组、字典、集合的补充
    CentOS7安装mysql后无法启动服务,提示Unit not found
    (个人记录)Python2 与Python3的版本区别
    1.print()与input()
    JAVA:函数的定义、使用
    Java:包装类
    Java:访问权限
    Java程序流程控制:判断结构、选择结构、循环结构
    Java:运算符的问题
  • 原文地址:https://www.cnblogs.com/cjb1/p/14525116.html
Copyright © 2011-2022 走看看