利用Java代码保存corporate wiki源代码
2023-09-14 09:03:08 时间
package wikitool;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
class wikiItem implements Comparable<wikiItem>
{
private int mFileIndex;
private String mWholePath;
public int getFileIndex()
{
return mFileIndex;
}
public wikiItem(String fullPath)
{
mWholePath = fullPath;
mFileIndex = Integer.parseInt(mWholePath.substring(0, 3));
}
public void print()
{
System.out.println(mWholePath);
}
@Override
public int compareTo(wikiItem o) {
return mFileIndex - o.getFileIndex();
}
}
public class Launcher
{
private String mConfigureFile;
private String mFolderPath;
private int mStartPrefix;
ArrayList<wikiItem> mWikiList = new ArrayList<wikiItem>();
public Launcher(String folder)
{
mConfigureFile = folder;
readConfig();
}
private void readConfig()
{
try
{
FileInputStream f = new FileInputStream(mConfigureFile);
BufferedReader dr = new BufferedReader(new InputStreamReader(f));
mFolderPath = dr.readLine();
mStartPrefix = Integer.valueOf(dr.readLine());
dr.close();
}
catch (IOException e) {
}
}
private String getFileID(File file)
{
return file.getName().substring(0,3);
}
private boolean shouldRecord(File file)
{
String num = file.getName().substring(0, 3);
int number = -1;
try
{
number = Integer.parseInt(num);
}
catch (java.lang.NumberFormatException e)
{
return false;
}
if( number < mStartPrefix )
return false;
return true;
}
private void output()
{
Collections.sort(mWikiList);
for( int i = 0; i < mWikiList.size(); i++)
mWikiList.get(i).print();
}
private String getFormattedName(String name)
{
return name.substring(4, name.length() - 4);
}
private void collect(File file)
{
String path = getFileID(file) + ". [" + getFormattedName(file.getName()) + "|" + file.getAbsolutePath() + "]";
wikiItem item = new wikiItem(path);
mWikiList.add(item);
}
// 052. [ABAP Script Examples|\\cnctul000\Restricted\ACI_CRM\CR52_ABAP Script Examples.pdf]
public void run()
{
File folder = new File(mFolderPath);
File[] list = folder.listFiles();
for( int i = 0; i < list.length; i++)
{
if(shouldRecord(list[i]))
collect(list[i]);
}
output();
}
static public void main(String argv[]) throws IOException
{
Launcher tool = new Launcher("C:\\temp\\1.txt");
tool.run();
}
}
package wikitool;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
/* find out uncoherent wiki sub page */
public class WikiTool {
public static void main(String[] args) {
System.out.println("ok");
WikiTool i = new WikiTool();
i.run();
}
private final String PAGE = "Page:";
private final int LENGTH = PAGE.length();
private String mConfigureFile = "C:\\temp\\wiki.txt";
private ArrayList<String> pageCollection = new ArrayList<String>();
private int counter = 1;
public void run(){
readConfig();
parse();
}
private boolean isValidPage(String line){
return line.contains(PAGE) && line.contains(".");
}
private int getPageNumber(String line) {
int start = line.indexOf(PAGE) + LENGTH;
int end = line.indexOf(".");
String value = line.substring(start, end);
int result = Integer.parseInt(value.trim());
//System.out.println("parse result: " + result );
return result;
}
private void parse() {
for( int i = 0; i < pageCollection.size(); i++) {
int current = getPageNumber(pageCollection.get(i));
if( counter != current ){
System.out.println("missing count: " + counter);
counter = current;
}
counter++;
}
}
private void readConfig(){
try{
FileInputStream f = new FileInputStream(mConfigureFile);
@SuppressWarnings("resource")
BufferedReader dr = new BufferedReader(new InputStreamReader(f));
String line = null;
while ( ( line = dr.readLine() )!= null ){
//System.out.println(line);
if( isValidPage(line))
pageCollection.add(line);
}
}
catch (IOException e){
e.printStackTrace();
}
}
}
相关文章
- 怎么用命令提示符运行JAVA代码_java命令提示符如何进入
- java sortedset用法_Java SortedSet headSet()用法及代码示例[通俗易懂]
- java局域网发送文件_Java如何实现局域网文件传输代码案例分享
- Java单元测试工具:JUnit4(一)——概述及简单例子「建议收藏」
- java冒泡排序概练_Java的冒泡排序[通俗易懂]
- java软件工程师是做什么的_JAVA软件工程师是做什么的?
- java语言的平台无关性是指什么,《深入Java虚拟机》学习笔记二:平台无关性
- java代码大全及详解_Java练级攻略[通俗易懂]
- 编写java判断闰年_Java 判断闰年代码实例
- db4o java_java com.db4o 类
- 【动态规划1】钢条切割算法Java代码
- 【说站】java代码块的执行顺序是什么
- 震撼!阿里首次开源 Java 10万字题库,Github仅一天星标就超60K
- Java文件读写操作具体代码实现详解编程语言
- Java中的ConcurrentHashMap详解编程语言
- 中的应用Java中MySQL的灵活运用(mysql在java代码)
- 失效Redis控制Java代码过期失效(redisjava过期)
- 数据库的操作Java与MySQL搭配:完美数据库操作(java对mysql)
- Java实现MySQL数据插入(java插入mysql)
- MySQL之Java实现主从复制(java mysql主从)
- Linux下Java命令的使用方法简介(linux下java命令)
- 在Java中利用Oracle数据库进行应用开发(java中oracle)
- Java利用for循环输出空心菱形的实例代码