📄 writetest.java
字号:
package com.sinosoft.security.util.mazingldaptools;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
public class WriteTest {
/**
* @param args
*/
public static void main(String[] args) {
// System.out.println(new java.sql.Timestamp(new
// java.util.Date().getTime()).toString());
// TODO 自动生成方法存根
WriteTest t = new WriteTest();
String res = "E:\\导数命令\\dataOrgsmile2.ldif";
String targ = "E:\\导数命令\\dataOrgsmile3.ldif";
t.readMyFileByIndex(res, targ, false);
// System.out.println(new java.sql.Timestamp(new
// java.util.Date().getTime()).toString());
}
public static void readMyFileByIndex(String res, String targ, boolean isOU) {
String record = "";
int recCount = 0;
FileReader fr = null;
BufferedReader br = null;
FileWriter fw = null;
BufferedWriter bw = null;
try {
fr = new FileReader(res);
br = new BufferedReader(fr);
fw = new FileWriter(targ);
bw = new BufferedWriter(fw);
ArrayList cnBeforeOrder = new ArrayList();
ArrayList cnBeforeOrderSize = new ArrayList();
ArrayList cnOrder = new ArrayList();
// ArrayList cnOrderSize = new ArrayList();
boolean flag = false;
String[] ss = null;
int cnLength = 0;
// 取得所有cn放入到cnBeforeOrder和cnBeforeOrderSize中。
while ((record = br.readLine()) != null) {
recCount++;
System.out.println(recCount + ": " + record);
if (flag == false) {
if (isOU) {
if (record.indexOf("ou=") == 0) {
flag = true;
cnBeforeOrder.add(record);
ss = record.split(",");
cnLength = ss.length;
cnBeforeOrderSize.add(Integer.valueOf(ss.length));
}
} else {
if (record.indexOf("cn=") == 0) {
flag = true;
cnBeforeOrder.add(record);
ss = record.split(",");
cnLength = ss.length;
cnBeforeOrderSize.add(Integer.valueOf(ss.length));
}
}
}
if (record.length() == 0)
flag = false;
}
System.out.println("cnBeforeOrder:" + cnBeforeOrder.size());
// 开始对其排序
int lastCnSize = 0;
String lastCnStr = "";
int tempj = 0;
for (int i = 0; i < cnBeforeOrderSize.size(); i++) {
int tempLength = ((Integer) cnBeforeOrderSize.get(i))
.intValue();
int temp = 0;
String tempStr = "";
// 找到次小
for (int j = i + 1; j < cnBeforeOrderSize.size(); j++) {
temp = ((Integer) cnBeforeOrderSize.get(j)).intValue();
tempStr = (String) cnBeforeOrder.get(j);
if (temp == 0) {
tempj = j;
}
if (temp <= tempLength) {
tempLength = temp;
tempj = j;
}
}
lastCnStr = (String) cnBeforeOrder.get(i);
cnBeforeOrder.set(i, (String) cnBeforeOrder.get(tempj));
cnBeforeOrder.set(tempj, lastCnStr);
lastCnSize = ((Integer) cnBeforeOrderSize.get(i)).intValue();
cnBeforeOrderSize
.set(i, (Integer) cnBeforeOrderSize.get(tempj));
cnBeforeOrderSize.set(tempj, Integer.valueOf(lastCnSize));
}
cnOrder = cnBeforeOrder;
// 开始按照cnOrder的顺序,将数据输入输出文件。
System.out.println("cnOrder:" + cnOrder.size());
ArrayList tempCn = new ArrayList();
boolean just = false;
for (int j = 0; j < cnOrder.size(); j++) {
fr = new FileReader(res);
br = new BufferedReader(fr);
just = false;
flag = false;
tempCn.clear();
while ((record = br.readLine()) != null) {
recCount++;
// System.out.println(recCount + ": " + record);
if (flag == false) {
if (isOU) {
if (record.indexOf("ou=") == 0) {
flag = true;
if (record.equalsIgnoreCase((String) cnOrder
.get(j)))
just = true;
}
} else {
if (record.indexOf("cn=") == 0) {
flag = true;
if (record.equalsIgnoreCase((String) cnOrder
.get(j)))
just = true;
}
}
}
tempCn.add(record);
if (record.length() == 0) {
if (just) {
if (((String) tempCn.get(tempCn.size() - 1))
.equalsIgnoreCase(""))
tempCn.remove(tempCn.size() - 1);
break;
}
flag = false;
tempCn.clear();
}
}
for (int i = 0; i < tempCn.size(); i++) {
bw.write((String) tempCn.get(i));
System.out.println((String) tempCn.get(i));
bw.newLine();
}
tempCn.clear();
bw.newLine();
System.out
.println("**************************************************************"
+ j);
System.out.println();
}
if (br != null) {
br.close();
}
if (bw != null) {
bw.close();
}
if (fr != null) {
fr.close();
}
if (fw != null) {
fw.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
private void readMyFileByIndex1() {
String record = "";
int recCount = 0;
FileReader fr = null;
BufferedReader br = null;
FileWriter fw = null;
BufferedWriter bw = null;
try {
fr = new FileReader("dataallsmile1.ldif");
br = new BufferedReader(fr);
fw = new FileWriter("dataallsmile2.ldif");
bw = new BufferedWriter(fw);
ArrayList cnBeforeOrder = new ArrayList();
ArrayList cnBeforeOrderSize = new ArrayList();
ArrayList cnOrder = new ArrayList();
// ArrayList cnOrderSize = new ArrayList();
boolean flag = false;
String[] ss = null;
int cnLength = 0;
// 取得所有cn放入到cnBeforeOrder和cnBeforeOrderSize中。
while ((record = br.readLine()) != null) {
recCount++;
// System.out.println(recCount + ": " + record);
if (flag == false) {
if (record.indexOf("cn=") == 0) {
flag = true;
cnBeforeOrder.add(record);
ss = record.split(",");
cnLength = ss.length;
cnBeforeOrderSize.add(Integer.valueOf(ss.length));
}
}
if (record.length() == 0)
flag = false;
}
// System.out.println("cnBeforeOrder:"+cnBeforeOrder.size());
// 开始对其排序
int lastCnSize = 0;
String lastCnStr = "";
int tempj = 0;
for (int i = 0; i < cnBeforeOrderSize.size(); i++) {
int tempLength = ((Integer) cnBeforeOrderSize.get(i))
.intValue();
int temp = 0;
String tempStr = "";
// 找到次小
for (int j = i + 1; j < cnBeforeOrderSize.size(); j++) {
temp = ((Integer) cnBeforeOrderSize.get(j)).intValue();
tempStr = (String) cnBeforeOrder.get(j);
if (temp == 0) {
tempj = j;
}
if (temp <= tempLength) {
tempLength = temp;
tempj = j;
}
}
lastCnStr = (String) cnBeforeOrder.get(i);
cnBeforeOrder.set(i, (String) cnBeforeOrder.get(tempj));
cnBeforeOrder.set(tempj, lastCnStr);
lastCnSize = ((Integer) cnBeforeOrderSize.get(i)).intValue();
cnBeforeOrderSize
.set(i, (Integer) cnBeforeOrderSize.get(tempj));
cnBeforeOrderSize.set(tempj, Integer.valueOf(lastCnSize));
}
cnOrder = cnBeforeOrder;
// 开始按照cnOrder的顺序,将数据输入输出文件。
// System.out.println("cnOrder:"+cnOrder.size());
ArrayList tempCn = new ArrayList();
boolean just = false;
for (int j = 0; j < cnOrder.size(); j++) {
fr = new FileReader("dataallsmile1.ldif");
br = new BufferedReader(fr);
just = false;
flag = false;
tempCn.clear();
while ((record = br.readLine()) != null) {
recCount++;
System.out.println(recCount + ": " + record);
if (flag == false) {
if (record.indexOf("cn=") == 0) {
flag = true;
if (record
.equalsIgnoreCase((String) cnOrder.get(j)))
just = true;
}
}
tempCn.add(record);
if (record.length() == 0) {
if (just) {
if (((String) tempCn.get(tempCn.size() - 1))
.equalsIgnoreCase(""))
tempCn.remove(tempCn.size() - 1);
break;
}
flag = false;
tempCn.clear();
}
}
for (int i = 0; i < tempCn.size(); i++) {
bw.write((String) tempCn.get(i));
// System.out.println( (String) tempCn.get(i));
bw.newLine();
}
tempCn.clear();
bw.newLine();
// System.out.println("**************************************************************"+j);
// System.out.println();
}
if (br != null) {
br.close();
}
if (bw != null) {
bw.close();
}
if (fr != null) {
fr.close();
}
if (fw != null) {
fw.close();
}
} catch (Exception e) {
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -