❶ java下文本文件讀取並分割
packagedemo;
importjava.io.BufferedInputStream;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.InputStreamReader;
importjava.util.ArrayList;
importjava.util.List;
publicclassDemoApp{
publicstaticvoidmain(String[]args)throwsException{
//指定的文件
Filefile=newFile("E:\Workspaces\eclipse3.7\Demo\src\test.txt");
//裝載list
List<String>list=newArrayList<String>();
//讀取文件
FileInputStreamfis=newFileInputStream(file);
BufferedReaderbr=newBufferedReader(newInputStreamReader(fis));
StringBufferbuffer=newStringBuffer();
Stringline;
inti=0;
while((line=br.readLine())!=null){
System.out.println(line);
if(i==0){
buffer.append(line+" ");
}else{
//判斷截取點
if(line.substring(0,1).equals(">")){
list.add(buffer.toString());
buffer=newStringBuffer();
buffer.append(line+" ");
}else{
buffer.append(line+" ");
}
}
i++;
}
if(line==null){
list.add(buffer.toString());
}
//test
System.out.println("--------------------------");
for(intj=0;j<list.size();j++){
System.out.println(j+":"+list.get(j));
System.out.println("-----------------------");
}
}
}
❷ java將一個txt以空行分割成多個怎麼實現
public static void main(String[] args) {
BufferedReader r = null;
BufferedWriter w = null;
try {
r = new BufferedReader(new FileReader(new File("e://abc.txt")));
w = new BufferedWriter(new FileWriter(new File("e://abc1.txt")));
int i=2;
String buff;
while ((buff=r.readLine())!=null) {
w.append(buff).append("\n");
if("".equals(buff)){
w.flush();
w = new BufferedWriter(new FileWriter(new File("e://abc"+i+".txt")));
i++;
}
}
w.flush();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
try {
if(r!=null){
r.close();
}
if(w!=null){
r.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
❸ java字元串按照".txt「分割
str.split(\\.txt); String 中使用"."分割,"."需要轉義。用"\\."
❹ jar格式的小說KB太大JAVA安裝不了
呵呵。。在手機里看小說應該是下載閱讀器,然後下載小說TXT格式。然後用TXT分割器進行分割TXT。然後用閱讀器瀏覽TXT。。或者乾脆用UC瀏覽器上網看
❺ java中如何在將資料庫數據導入txt文件時將欄位用分隔符「|@|」分割
在查詢數據的sql語句中就把每個查出的列的數據前都加上那個符號,用 || 加,比如 「|@|」|| 欄位名 別名, 這樣數據出來就帶那個符號了
❻ 如何用Java分割大txt文件
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:源文件的路徑 *targetDirectory:保存文件的目錄(例:'C:\\') *prefix:是分割後文件的前綴(例:'2015-09-09') *size:是分隔後單一文件的大小單位是2kb的倍數,size傳10,分割後單一文件就是20K。傳100,文件就是2M一個。 * **/ public static void cutToMoreFile(String sourceFile, String targetDirectory, String prefix, int size) { //載入源文件 File source = new File(sourceFile); InputStream in = null; OutputStream out = null; int len = 0; int fileIndex = 1; //設置一次載入的大小 byte[] buffer = new byte[2048]; try { //把源文件讀到InputStream中 in = new FileInputStream(source); //循環 while(true) { //分割後的文件流 out = new FileOutputStream(targetDirectory + File.separator + prefix + fileIndex++ + ".txt"); for(int i = 0; i < size; i++) { //如果文件讀取完就退回方法。 if((len = in.read(buffer)) != -1) { //寫入分割後的文件 out.write(buffer, 0, len); }else { //執行finally內容後,退出方法 return; } } } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { try { //關系流 in.close(); out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
❼ Java拆分txt文件的寫法
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class SplitCreateFile {
//從你源文件里的內容獲得你想要創建的文件名
public static String getTxtFromFile(File file){
if(file.exists()){
BufferedReader br=null;
String fileName =null;
try {
br = new BufferedReader(new FileReader(file));
String line =null;//用於接收 readLine的返回值,如果讀不到數據,line就為null
while((line=br.readLine())!=null){
fileName = line;
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(br!=null){
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return fileName;
}else{
System.out.println("文件不存在");
return new String();
}
}
//創建文件
public static void createNewFile(String fileName) {
try {
String[] fileNames = fileName.split(">");//按照">"分割
for(String f:fileNames){
File file = new File(f+".txt");
if (!file.exists()) {
file.createNewFile();
}else{
System.out.println(f+" 文件已經存在");
}
}
} catch (Exception e) {
System.out.println("新建目錄操作出錯");
e.printStackTrace();
}
}
public static void main(String[] args) {
File file = new File("a.txt");/*這里輸入你存放那個a>b>c>d的txt文件,可以加上路勁 ,比如說你那個文件放到d:\workspace ,可以寫成File file = new File("d:\wordspace\a.txt");*/
String fileNames = getTxtFromFile(file);
createNewFile(fileNames); //注意,創建的txt文件默認是放在你編譯java存放.class的文件下,但是這個你可以修改路勁把新建的文件存放在哪裡
}
}
❽ 如何用java把txt文件以句子為單位切割
java 的String有split主法你知道嗎?
一。 首先,找出句子的規律,得出:
1。凡句子都是有空格
2。凡句子都是最後帶符號「。?!;」等
二。 使用split方法將你的字元串分成N個字元串數組
String text = "你好,親愛的。我想你知道你今天好嗎?我想你。"
String[] subStrings = text.split(" ");
得到這個數組後遍歷數組,找出數組中含有規定標點符號的,並加上「F」
for(int i=0;i<subStrings.length; i++){
String sub = subStrings[i];
if(sub.equals("。")||sub.equals(";")sub.equals("?")){
sub = "<f>"+sub+"</f>";
}
}
另外,按照規定句子結束是有空格的,但萬一你的需求就是沒有空格怎麼辦?
這樣你就換一種思路,用動態數組來做Vector或者ArrayList,遍歷你的字元串,如果遇到規定的符號,則截取子字元串並加入到你的vector中。 最後遍歷vector跟上面遍歷數組的方法一樣。
或者最笨最簡單的方法就是第一次遍歷你的字元串,每次遇到名號分號和問號就插入一個空格。然後再用上面我寫的方法變成數組,再遍歷數組就OK了。
解決問題有很多很多方法,平時要多多練習一定會有長進。
這可能是你的作業,所以就不具體打出所有詳細代碼了吧,祝你學習進步
❾ 求java高手,java讀取txt中內容,按內容拆分成多個txt,如下圖,拆分成兩個txt文件
沒有定拆分規則 以下代碼是前5個行為一個txt 其餘的為另外一個txt
packagecom.kidd.;
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.util.Scanner;
publicclass{
publicstaticvoidmain(String[]args){
Filefile=newFile("D:"+File.separator+"t1.txt");
String[]ss=readTxt(file);
if(ss==null||ss.length==0){
System.out.println("讀取txt內容發生錯誤,txt內容可能為空.");
return;
}
file=newFile("D:"+File.separator+"1.txt");
if(!writeTxt(file,ss,0,5)){
System.out.println("寫入第一個txt發生了錯誤.終止");
return;
}
file=newFile("D:"+File.separator+"2.txt");
if(!writeTxt(file,ss,5)){
System.out.println("寫入第二個txt發生了錯誤.終止");
return;
}
}
/**
*寫出數組內容從start開始的所有內容到txt文件
*@paramfile待寫出的txt文件的File形式
*@paramss數組對象
*@paramstart開始位置
*@return成功返回true發生錯誤返回false
*/
privatestaticbooleanwriteTxt(Filefile,String[]ss,intstart){
returnwriteTxt(file,ss,start,ss.length-start);
}
/**
*寫出數組內容從start位置開始共寫出length個到txt文件
*@paramfile待寫出的txt文件的File形式
*@paramss數組對象
*@paramstart開始位置
*@paramlength寫出長度
*@return成功返回true發生錯誤返回false
*/
privatestaticbooleanwriteTxt(Filefile,String[]ss,intstart,intlength){
FileWriterfWriter;
try{
fWriter=newFileWriter(file,false);
}catch(IOExceptione){
e.printStackTrace();
returnfalse;
}
try{
for(inti=start,k=ss.length;i<k&&i<start+length;i++){
fWriter.write(ss[i]+" ");
}
}catch(IOExceptione){
e.printStackTrace();
if(!closeFileWriter(fWriter)){
fWriter=null;
}
returnfalse;
}
if(!closeFileWriter(fWriter)){
fWriter=null;
}
returntrue;
}
/**
*關閉文件流
*@paramfWriter
*@return成功關閉返回true,發生錯誤返回false
*/
(FileWriterfWriter){
if(fWriter==null){
returnfalse;
}
try{
fWriter.close();
}catch(IOExceptione){
e.printStackTrace();
}
returntrue;
}
/**
*讀取txt文件內容,返回該文本內容的String[]形式
*@paramfiletxt文件的File形式
*@return該文本內容的String[]形式若讀取發生錯誤則返回null
*/
privatestaticString[]readTxt(Filefile){
Scannerscanner;
try{
scanner=newScanner(file);
}catch(FileNotFoundExceptione){
e.printStackTrace();
returnnull;
}
Stringstring="";
/**
*讀取到的每一行用,分割
*/
while(scanner.hasNext()){
string+=scanner.nextLine()+",";
}
scanner.close();
returnstring.split(",");
}
}
❿ java讀取一個txt文件後怎麼按裡面以某些特定字元分割開並輸出,讀取的文件1m以上。。。。在線等。。。
你是要分割么? 那直接 用split()方法啊 比較用 , 分開 就是 .split(",");直接分到一個數組
或者你一定要用indexOf 你只能用循環 來實現了