Мне нужно извлечь 500К строк из базы данных и записать эти данные в файл. Средство выполняет операцию ввода-вывода.Я сделал для двух шагов.
- Запишите каждую строку одну за другой в файл.
- Создайте кусок этих строк. Добавьте эти строки в StringBuffer и затем напечатайте его.Это будет лучше, но есть ли способ, которым File I / O может создать буфер самостоятельно, без использования StringBuffer.Поскольку этот строковый буфер занимает больше времени (внутренне он использует Arrays.copyOf)
Пожалуйста, предложите мне это. Пожалуйста, найдите код, прикрепленный к этому
public void fetchDataWithChunkSpace(Connection con)throws Exception
{
String query ="select * from lis.testxml ";
long startTime=new Date().getMinutes();
PreparedStatement stmt = con.prepareStatement(query);
ResultSet rs = stmt.executeQuery();
PrintWriter pw = new PrintWriter(new File("c:\\test_chunkSpace.xml"));
pw.write("<?xml version='1.0' encoding='UTF-8'?>");
StringBuffer sb = new StringBuffer();
String t=null;
long count =0;
while(rs.next())
{ count++;
t = rs.getString("xmltest");
sb = sb.append(t);
if(count%100==0)
{
pw.write(sb.toString());
sb = new StringBuffer();
System.out.println(count);
}
}
pw.write("\n");
pw.write("</EndTag>");
pw.close();
stmt.close();
con.close();
long endTime=new Date().getMinutes();
System.out.println("chunkSpace ---> " + (endTime-startTime));
}