求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后马上向新文件中写数据就行了。
绛旓細浣犲彲浠ョ敤IO鐨凚ufferedReader涓殑readLine()璇诲叆姣忎竴琛岀殑鏁版嵁,鐒跺悗鍐嶇敤String.split(" ")鏂规硶灏嗕竴琛屾暟鎹垎涓哄瓧绗︿覆鏁扮粍,鑰岃繖瀛楃涓叉暟缁勪腑鐨勬瘡涓瓧绗︿覆灏辨槸浣犳兂瑕佺殑鍗曞厓,鐒跺悗鍙互璁剧疆鏁版嵁婧,閫氳繃URL鍜孌RIVER杩炴帴鏁版嵁婧,閫氳繃PreparedStatement鐨剆etString()鏂规硶,涓涓竴涓湴鎶婅繖浜涘崟鍏冩彃鍏ユ暟鎹簱涓,sql璇彞鍙互...
绛旓細arrayList涓殑姣忎竴椤规槸涓鏉℃暟鎹 while (scanner.hasNext()) { String line = scanner.nextLine();//璇诲叆涓琛屾暟鎹 String[] datas = line.split(",");//鏍规嵁閫楀彿鍒嗛殧瀛楃涓 if (datas.length != 3) { //濡傛灉鍒嗗壊鍚庣殑鏁版嵁涓嶈冻涓変釜锛岃鏄庢暟鎹敊璇紝鎶涘純鏈潯鏁版嵁 continue; ...
绛旓細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();...
绛旓細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....
绛旓細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/...
绛旓細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 =...
绛旓細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; }}杩欐牱
绛旓細= 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鐨勫唴瀹 锛宩ava璇诲彇鐨勬椂鍊欐槸閫愯璇荤殑锛岀劧鍚庡惊鐜釜鍙橀噺 涓琛屼竴琛岀殑鍔犲氨OK浜嗗晩
绛旓細浣犳棦鐒朵細浣跨敤IO锛岄偅涔堢畝鍗曚簡鍟婃妸txt鏂囦欢璇诲埌鍐呭瓨涓紝鍦ㄥ唴瀛樹腑鑷繁瀹氫箟瀵瑰簲鐨勬暟鎹璞★紝鐒跺悗瀵硅繖涓璞℃暟缁勮繘琛屾帓搴忓氨鍙互浜 鐩存帴鍦璇籺xt鏂囦欢杩囩▼涓笉鏄兘鎺掑簭鐨