使用IO流拼接SQL語句
讀取txt文件的內容;然後拼接成SQL語句後輸出到txt文件。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class IOStreams {
public static void main(String[] args) {
// 讀數據(相對路徑)
String readFileName = ".\\source\\test_1029.txt";
Collection coll = readFiles(readFileName);
System.out.println("上傳的數據總條數:"+ coll.size());
// 寫數據(相對路徑)
String writeFileName = ".\\source\\test_point_1029.txt";
int num = writeFiles(writeFileName, coll);
System.out.println("寫入的數據總條數:" + num);
}
/**
* 讀取txt文件入集合
* @param pathName
* @return
* @throws IOException
*/
public static Collection readFiles(String pathName) {
Collection coll = new ArrayList<>();
File file = null;
InputStreamReader reader = null;
String line = null;
try {
file = new File(pathName);
// 建立一個輸入流對象reader
reader = new InputStreamReader(new FileInputStream(file));
// 建立一個對象,它把文件內容轉成計算機能讀懂的語言
BufferedReader br = new BufferedReader(reader);
while (br.ready()) {
// (line = br.readLine())!=null,會出現漏讀首行,文末行爲null
// 可以用br.ready()解決
// 一次讀入一行數據
line = br.readLine();
//System.out.println(line);
// 添加
coll.add(line);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if(null != reader)
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return coll;
}
/**
* 把拼接後的sql語句寫回txt文件
* @param pathName 文件的路徑
* @param line 數據
*/
public static int writeFiles(String pathName,Collection coll){
File writename = new File(pathName);
BufferedWriter out = null;
// 計數,統計寫入的條數
int count = 0;
try {
// 每次都創建新文件
writename.createNewFile();
out = new BufferedWriter(new FileWriter(writename));
for(Iterator iter = coll.iterator(); iter.hasNext();){
// \r\n即爲換行
out.write("INSERT INTO test (phone,souce) VALUES ('"+iter.next()+"','test');\r\n");
out.flush(); // 把緩存區內容壓入文件
count ++;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if(null != out)
try {
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return count;
}
}