求java高手,java读取txt中内容,按内容拆分成多个txt,如下图,拆分成两个txt文件 Java拆分txt文件的写法

java\u8bfb\u53d6txt\u4e2d\u5185\u5bb9\uff0c\u6309\u5185\u5bb9\u62c6\u5206\u6210\u591a\u4e2atxt\uff0c\u5982\u4e0b\u56fe\uff0c\u62c6\u5206\u6210\u4e24\u4e2atxt\u6587\u4ef6

\u662f\u6309\u6bcf\u884c\u7684\u6570\u636e\u4e2a\u6570\u5206\uff1f\u4f60\u5c31\u6309\u7a7a\u683csplit\u4e00\u4e0b\uff0c\u5224\u65ad\u6570\u7ec4\u957f\u5ea6\uff0c\u653e\u5230\u6587\u4ef6\u91cc\u5457

\u4ee5\u4e0b\u4e00\u4e2a\u62c6\u5206txt\u7684Util\u7c7b
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;public class FileCutter { /** * *sourceFile:\u6e90\u6587\u4ef6\u7684\u8def\u5f84 *targetDirectory:\u4fdd\u5b58\u6587\u4ef6\u7684\u76ee\u5f55(\u4f8b:'C:\\') *prefix:\u662f\u5206\u5272\u540e\u6587\u4ef6\u7684\u524d\u7f00(\u4f8b:'2015-09-09') *size:\u662f\u5206\u9694\u540e\u5355\u4e00\u6587\u4ef6\u7684\u5927\u5c0f\u5355\u4f4d\u662f2kb\u7684\u500d\u6570,size\u4f2010\uff0c\u5206\u5272\u540e\u5355\u4e00\u6587\u4ef6\u5c31\u662f20K\u3002\u4f20100\uff0c\u6587\u4ef6\u5c31\u662f2M\u4e00\u4e2a\u3002 * **/ public static void cutToMoreFile(String sourceFile, String targetDirectory, String prefix, int size) { //\u52a0\u8f7d\u6e90\u6587\u4ef6 File source = new File(sourceFile); InputStream in = null; OutputStream out = null; int len = 0; int fileIndex = 1; //\u8bbe\u7f6e\u4e00\u6b21\u52a0\u8f7d\u7684\u5927\u5c0f byte[] buffer = new byte[2048]; try { //\u628a\u6e90\u6587\u4ef6\u8bfb\u5230InputStream\u4e2d in = new FileInputStream(source); //\u5faa\u73af while(true) { //\u5206\u5272\u540e\u7684\u6587\u4ef6\u6d41 out = new FileOutputStream(targetDirectory + File.separator + prefix + fileIndex++ + ".txt"); for(int i = 0; i < size; i++) { //\u5982\u679c\u6587\u4ef6\u8bfb\u53d6\u5b8c\u5c31\u9000\u56de\u65b9\u6cd5\u3002 if((len = in.read(buffer)) != -1) { //\u5199\u5165\u5206\u5272\u540e\u7684\u6587\u4ef6 out.write(buffer, 0, len); }else { //\u6267\u884cfinally\u5185\u5bb9\u540e,\u9000\u51fa\u65b9\u6cd5 return; } } } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { try { //\u5173\u7cfb\u6d41 in.close(); out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }}\u4ee5\u4e0a\uff0c\u8be6\u7ec6\u8bf7\u770b\u6ce8\u91ca

没有定拆分规则   以下代码是前5个行为一个txt   其余的为另外一个txt

package com.kidd.baiduzhidao;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class baiduzhidao {

    public static void main(String[] args) {
        File file = new File("D:"+File.separator+"t1.txt");

        String[] ss = readTxt(file);
        
        if(ss==null || ss.length==0){
            System.out.println("读取txt内容发生错误,txt内容可能为空.");
            return ;
        }

        file = new File("D:"+File.separator+"1.txt");
        
        if(!writeTxt(file, ss ,0, 5)){
            System.out.println("写入第一个txt发生了错误.终止");
            return ;
        }
        
        file = new File("D:"+File.separator+"2.txt");
        if(!writeTxt(file, ss ,5)){
            System.out.println("写入第二个txt发生了错误.终止");
            return ;
        }
        
    }

    /**
     * 写出数组内容从start开始的所有内容到txt文件
     * @param file 待写出的txt文件的File形式
     * @param ss 数组对象
     * @param start 开始位置
     * @return 成功返回true  发生错误返回false
     */
    private static boolean writeTxt(File file, String[] ss, int start) {
        return writeTxt(file,ss,start,ss.length-start);
    }

    /**
     * 写出数组内容从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 i = start , k = ss.length ; i < k && i < start+length ; i++){
                fWriter.write(ss[i]+"
");
        }
        
        } 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(",");
    }

}


java对文件进行逐行读取, 判断每一行的开头是不是J01 读入两个J01后马上向新文件中写数据就行了。

  • java璇诲彇txt鏂囨湰鍒癑Table琛ㄦ牸鏈鍚庡瓨鍏ユ暟鎹簱
    绛旓細浣犲彲浠ョ敤IO鐨凚ufferedReader涓殑readLine()璇诲叆姣忎竴琛岀殑鏁版嵁,鐒跺悗鍐嶇敤String.split(" ")鏂规硶灏嗕竴琛屾暟鎹垎涓哄瓧绗︿覆鏁扮粍,鑰岃繖瀛楃涓叉暟缁勪腑鐨勬瘡涓瓧绗︿覆灏辨槸浣犳兂瑕佺殑鍗曞厓,鐒跺悗鍙互璁剧疆鏁版嵁婧,閫氳繃URL鍜孌RIVER杩炴帴鏁版嵁婧,閫氳繃PreparedStatement鐨剆etString()鏂规硶,涓涓竴涓湴鎶婅繖浜涘崟鍏冩彃鍏ユ暟鎹簱涓,sql璇彞鍙互...
  • Java涓濡備綍鎻愬彇TXT鏂囦欢鏁版嵁骞惰鏁版嵁瀵煎叆鍒版暟缁勯噷...鎬ユ眰
    绛旓細arrayList涓殑姣忎竴椤规槸涓鏉℃暟鎹 while (scanner.hasNext()) { String line = scanner.nextLine();//璇诲叆涓琛屾暟鎹 String[] datas = line.split(",");//鏍规嵁閫楀彿鍒嗛殧瀛楃涓 if (datas.length != 3) { //濡傛灉鍒嗗壊鍚庣殑鏁版嵁涓嶈冻涓変釜锛岃鏄庢暟鎹敊璇紝鎶涘純鏈潯鏁版嵁 continue; ...
  • java璇诲彇txt骞惰幏鍙栨煇涓閮ㄥ垎瀛楃涓
    绛旓細while((line = br.readLine())!= null){//涓娆璇诲彇涓琛 System.out.println(line);String[] tmp = line.split("--");//鏍规嵁--灏嗘瘡琛屾暟鎹媶鍒嗘垚涓涓暟缁 for(int i=0; i<tmp.length; i++){ System.out.println("\t" + tmp[i]);//tmp[1]灏辨槸浣犳兂瑕佺殑bb } } br.close();...
  • 鐢java璇诲彇txt鏂囦欢,鐒跺悗瀵规暟鎹繘琛屾帓搴,鍘婚噸绛夋搷浣溿
    绛旓細IdNameYearCurrentCumulative 16,Melissa Will,3,5,9 17,Naomi Thomas,3,3,12 21,RonaldoGomes,3,1,11 22,Sam Del-Prete,2,4,10 2,Abe Storey,3,4,6 3,Anthony Tabrin,3,1,7 18,Nathan Bentley,3,2,19 浣犵敤杩欎釜鏂囦欢鍐呭,璇曚竴涓嬩笅杈圭殑绋嬪簭.import java.io.BufferedReader;import java....
  • JAVA璇诲彇鏈湴TXT鏂囦欢杞崲涓篨ML鏂囦欢杈撳嚭
    绛旓細txt鏂囦欢鏍煎紡濡備笅锛岄噰鐢ㄧ殑鏄竴涓湇鍔$tomcat鐨刲og鏃ュ織 [06/Mar/2013:18:43:55] 110.110.1.1 GET /rest/keyword/getallids/aid/3/os/android2.3.5/ver/1.0/ HTTP/1.1 200 210 1453 1.453 'Dalvik/1.4.0 (Linux; U; Android 2.3.5; T550 Build/MocorDroid2.3.5)'[06/Mar/...
  • 鐢Java缂栧啓涓涓彲浠璇诲彇鍜屽啓鍏xt鏂囨。鐨勭▼搴 瑕佹眰瀹炵幇鍙鍖栫殑绐楀彛...
    绛旓細import java.awt.*;import java.awt.event.*;import java.io.*;public class MyTest_35 extends WindowAdapter implements ActionListener,TextListener { Frame f;TextArea ta1; //澶氳鏂囨湰鍖 Panel p1;TextField tf1; //鏂囨湰妗 Button b1,b2,b3;FileDialog fd; //鏂囦欢瀵硅瘽妗 File file1 =...
  • java 鎬庢牱鑾峰彇T娉涘瀷鍛
    绛旓細public class Test<T> { private T t; public Test(T t) { this.t = t; } public T getT() { return t; } public void setT(T t) { this.t = t; }}杩欐牱
  • 姹傚姪JAVA闂 濡備綍璇诲彇涓涓.txt鏂囦欢 骞剁粺璁″叾涓殑鏁版嵁鍟...txt鏂囦欢...
    绛旓細= null) { bf.append(tempString); } String allText = bf.toString(); int aSize = allText.length() - allText.replaceAll("A", "").length(); int tSize = allText.length() - allText.replaceAll("T", "").length()...
  • java濡備綍璋冪敤txt閲岀殑鏁版嵁,骞惰繘琛屼竴涓畝鍗曠殑璁$畻
    绛旓細寰堢畝鍗 浣犵敤java棣栧厛璇诲彇txt鐨勫唴瀹 锛宩ava璇诲彇鐨勬椂鍊欐槸閫愯璇荤殑锛岀劧鍚庡惊鐜釜鍙橀噺 涓琛屼竴琛岀殑鍔犲氨OK浜嗗晩
  • java璇诲彇txt鏂囨。鏁版嵁,鐒跺悗瀵箃xt鏂囦欢鏁版嵁鎸夌収璇枃鏁板鎬诲垎鎴愮哗鐢卞ぇ鑷冲皬...
    绛旓細浣犳棦鐒朵細浣跨敤IO锛岄偅涔堢畝鍗曚簡鍟婃妸txt鏂囦欢璇诲埌鍐呭瓨涓紝鍦ㄥ唴瀛樹腑鑷繁瀹氫箟瀵瑰簲鐨勬暟鎹璞★紝鐒跺悗瀵硅繖涓璞℃暟缁勮繘琛屾帓搴忓氨鍙互浜 鐩存帴鍦璇籺xt鏂囦欢杩囩▼涓笉鏄兘鎺掑簭鐨
  • 扩展阅读:x86国产cpu ... 国产任天堂switch手柄官网 ... hdmi2.1高清线推荐 ... jquerymobile日本ad ... 亚马逊aws永久免费网页 ... 涟源爱沫私人电影院 ... amazon亚马逊官方网站 ... javascript免费网站 ... 欧洲vps windows网站 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网