Skip to content

Commit 767a17b

Browse files
committed
优化代码规范
1 parent 4095925 commit 767a17b

14 files changed

Lines changed: 162 additions & 92 deletions

src/main/java/com/xwintop/xJavaFxTool/controller/games/SudokuController.java

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import com.xwintop.xcore.util.javafx.AlertUtil;
1010
import com.xwintop.xcore.util.javafx.FileChooserUtil;
1111
import com.xwintop.xcore.util.javafx.TooltipUtil;
12-
import javafx.application.Platform;
1312
import javafx.beans.value.ChangeListener;
1413
import javafx.beans.value.ObservableValue;
1514
import javafx.event.Event;
@@ -19,6 +18,7 @@
1918
import javafx.scene.input.MouseEvent;
2019
import javafx.scene.paint.Color;
2120
import javafx.stage.FileChooser.ExtensionFilter;
21+
import org.apache.commons.io.FileUtils;
2222

2323
import java.io.*;
2424
import java.net.URL;
@@ -163,16 +163,13 @@ private void openFile() {
163163
File file = FileChooserUtil.chooseFile(new ExtensionFilter("Text Files", "*.txt"), new ExtensionFilter("All Files", "*.*"));
164164
if (file != null) {
165165
String[][] inputPuzzle = new String[9][9];
166-
BufferedReader reader;
167166
try {
168-
reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
169-
String line;
167+
List<String> stringList = FileUtils.readLines(file, "utf-8");
170168
int lineNum = 0;
171-
while ((line = reader.readLine()) != null) {
169+
for (String line : stringList) {
172170
inputPuzzle[lineNum] = line.trim().split("\\s+");
173171
lineNum++;
174172
}
175-
reader.close();
176173
for (int i = 0; i < 9; i++) {
177174
for (int j = 0; j < 9; j++) {
178175
puzzle.set(i, j, Integer.parseInt(inputPuzzle[i][j]));
@@ -191,20 +188,32 @@ private void openFile() {
191188
@FXML
192189
private void saveFile() {
193190
File file = FileChooserUtil.chooseSaveFile("Sudoku.txt");
194-
BufferedWriter writer;
191+
BufferedWriter writer = null;
195192
if (file != null) {
196193
try {
197194
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));
198195
String num;
199196
for (int i = 0; i < cells.size(); i++) {
200197
num = cells.get(i).getText();
201-
if (num.isEmpty() || num.equals("X")) writer.write("0 ");
202-
else writer.write(num + " ");
203-
if ((i + 1) % 9 == 0) writer.newLine();
198+
if (num.isEmpty() || num.equals("X")) {
199+
writer.write("0 ");
200+
} else {
201+
writer.write(num + " ");
202+
}
203+
if ((i + 1) % 9 == 0) {
204+
writer.newLine();
205+
}
204206
}
205-
writer.close();
206207
} catch (IOException e) {
207208
TooltipUtil.showToast("保存文件失败:" + e.getMessage());
209+
} finally {
210+
try {
211+
if (writer != null) {
212+
writer.close();
213+
}
214+
} catch (IOException e) {
215+
e.printStackTrace();
216+
}
208217
}
209218
}
210219
}

src/main/java/com/xwintop/xJavaFxTool/services/assistTools/IdiomDataToolService.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.io.File;
1919
import java.io.FileOutputStream;
2020
import java.sql.SQLException;
21+
import java.util.ArrayList;
2122
import java.util.HashMap;
2223
import java.util.List;
2324
import java.util.Map;
@@ -72,9 +73,6 @@ public void initIdiomData() {
7273
}
7374

7475
public void selectAction() throws Exception {
75-
if (jdbcTemplate == null) {
76-
TooltipUtil.showToast("成语词典数据未准备好,请稍后重试...");
77-
}
7876
String sql = "SELECT * FROM Idiom_dirty WHERE word like ? or abbreviation like ?";
7977
String sqlArgs = "";
8078
if (StringUtils.isEmpty(idiomDataToolController.getSelectWordTextField().getText())) {
@@ -95,7 +93,12 @@ public void selectAction() throws Exception {
9593
} else {
9694
sqlArgs = "%" + idiomDataToolController.getSelectWordTextField().getText() + "%";
9795
}
98-
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql, sqlArgs, sqlArgs);
96+
List<Map<String, Object>> list = new ArrayList<>();
97+
if (jdbcTemplate == null) {
98+
TooltipUtil.showToast("成语词典数据未准备好,请稍后重试...");
99+
} else {
100+
list = jdbcTemplate.queryForList(sql, sqlArgs, sqlArgs);
101+
}
99102
idiomDataToolController.getIdiomDataTableData().clear();
100103
for (Map<String, Object> stringObjectMap : list) {
101104
Map<String, String> dataRow = new HashMap<String, String>();

src/main/java/com/xwintop/xJavaFxTool/services/codeTools/CharsetDetectToolService.java

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,12 @@
1313
import java.io.FileInputStream;
1414
import java.io.InputStream;
1515
import java.net.URL;
16+
import java.nio.file.DirectoryStream;
1617
import java.nio.file.Files;
1718
import java.nio.file.Path;
1819
import java.util.Iterator;
19-
import java.util.regex.Matcher;
2020
import java.util.regex.Pattern;
21+
import java.util.stream.Stream;
2122

2223
/**
2324
* @ClassName: CharsetDetectToolService
@@ -58,24 +59,35 @@ public void detectAction() throws Exception {
5859
if (file.isDirectory()) {
5960
Path path = file.toPath();
6061
Iterator<Path> iterator = null;
62+
AutoCloseable autoCloseable = null;
6163
if (charsetDetectToolController.getIncludeSubdirectoryCheckBox().isSelected()) {
62-
iterator = Files.walk(path).iterator();
64+
Stream<Path> stream = Files.walk(path);
65+
autoCloseable = stream;
66+
iterator = stream.iterator();
6367
} else {
64-
iterator = Files.newDirectoryStream(path).iterator();
68+
DirectoryStream<Path> stream = Files.newDirectoryStream(path);
69+
autoCloseable = stream;
70+
iterator = stream.iterator();
6571
}
66-
boolean sRegex = charsetDetectToolController.getFileNameSupportRegexCheckBox().isSelected();
67-
String fileNameContains = charsetDetectToolController.getFileNameContainsTextField().getText();
68-
String fileNameNotContains = charsetDetectToolController.getFileNameNotContainsTextField().getText();
69-
Pattern fileNameCsPattern = null;
70-
Pattern fileNameNCsPattern = null;
71-
if (sRegex) {
72-
fileNameCsPattern = Pattern.compile(fileNameContains, Pattern.CASE_INSENSITIVE);
73-
fileNameNCsPattern = Pattern.compile(fileNameNotContains, Pattern.CASE_INSENSITIVE);
74-
}
75-
while (iterator.hasNext()) {
76-
Path nextPath = iterator.next();
77-
if (Files.isRegularFile(nextPath) && DirectoryTreeUtil.ifMatchText(nextPath.getFileName().toString(), fileNameContains, fileNameNotContains, sRegex, fileNameCsPattern, fileNameNCsPattern)) {
78-
charsetDetectToolController.getResultTextArea().appendText(nextPath.toString() + " Charset: " + detectFileCharset(nextPath.toFile(), detectLength) + "\n");
72+
try {
73+
boolean sRegex = charsetDetectToolController.getFileNameSupportRegexCheckBox().isSelected();
74+
String fileNameContains = charsetDetectToolController.getFileNameContainsTextField().getText();
75+
String fileNameNotContains = charsetDetectToolController.getFileNameNotContainsTextField().getText();
76+
Pattern fileNameCsPattern = null;
77+
Pattern fileNameNCsPattern = null;
78+
if (sRegex) {
79+
fileNameCsPattern = Pattern.compile(fileNameContains, Pattern.CASE_INSENSITIVE);
80+
fileNameNCsPattern = Pattern.compile(fileNameNotContains, Pattern.CASE_INSENSITIVE);
81+
}
82+
while (iterator.hasNext()) {
83+
Path nextPath = iterator.next();
84+
if (Files.isRegularFile(nextPath) && DirectoryTreeUtil.ifMatchText(nextPath.getFileName().toString(), fileNameContains, fileNameNotContains, sRegex, fileNameCsPattern, fileNameNCsPattern)) {
85+
charsetDetectToolController.getResultTextArea().appendText(nextPath.toString() + " Charset: " + detectFileCharset(nextPath.toFile(), detectLength) + "\n");
86+
}
87+
}
88+
} finally {
89+
if (autoCloseable != null) {
90+
autoCloseable.close();
7991
}
8092
}
8193
} else if (file.isFile()) {

src/main/java/com/xwintop/xJavaFxTool/services/codeTools/FileUnicodeTransformationToolService.java

Lines changed: 34 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,12 @@
1010
import org.apache.commons.lang3.StringUtils;
1111

1212
import java.io.File;
13+
import java.nio.file.DirectoryStream;
1314
import java.nio.file.Files;
1415
import java.nio.file.Path;
1516
import java.util.Iterator;
1617
import java.util.regex.Pattern;
18+
import java.util.stream.Stream;
1719

1820
/**
1921
* @ClassName: FileUnicodeTransformationToolService
@@ -42,31 +44,42 @@ public void transformationAction() throws Exception {
4244
if (file.isDirectory()) {
4345
Path path = file.toPath();
4446
Iterator<Path> iterator = null;
47+
AutoCloseable autoCloseable = null;
4548
if (fileUnicodeTransformationToolController.getIncludeSubdirectoryCheckBox().isSelected()) {
46-
iterator = Files.walk(path).iterator();
49+
Stream<Path> stream = Files.walk(path);
50+
autoCloseable = stream;
51+
iterator = stream.iterator();
4752
} else {
48-
iterator = Files.newDirectoryStream(path).iterator();
53+
DirectoryStream<Path> stream = Files.newDirectoryStream(path);
54+
autoCloseable = stream;
55+
iterator = stream.iterator();
4956
}
50-
boolean sRegex = fileUnicodeTransformationToolController.getFileNameSupportRegexCheckBox().isSelected();
51-
String fileNameContains = fileUnicodeTransformationToolController.getFileNameContainsTextField().getText();
52-
String fileNameNotContains = fileUnicodeTransformationToolController.getFileNameNotContainsTextField().getText();
53-
Pattern fileNameCsPattern = null;
54-
Pattern fileNameNCsPattern = null;
55-
if (sRegex) {
56-
fileNameCsPattern = Pattern.compile(fileNameContains, Pattern.CASE_INSENSITIVE);
57-
fileNameNCsPattern = Pattern.compile(fileNameNotContains, Pattern.CASE_INSENSITIVE);
58-
}
59-
while (iterator.hasNext()) {
60-
Path nextPath = iterator.next();
61-
if (Files.isRegularFile(nextPath) && DirectoryTreeUtil.ifMatchText(nextPath.getFileName().toString(), fileNameContains, fileNameNotContains, sRegex, fileNameCsPattern, fileNameNCsPattern)) {
62-
File newFile = nextPath.toFile();
63-
String showHideFile = fileUnicodeTransformationToolController.getShowHideFileChoice().getValue();
64-
if ("非隐藏".equals(showHideFile) && file.isHidden()) {
65-
return;
66-
} else if ("隐藏文件".equals(showHideFile) && !file.isHidden()) {
67-
return;
57+
try {
58+
boolean sRegex = fileUnicodeTransformationToolController.getFileNameSupportRegexCheckBox().isSelected();
59+
String fileNameContains = fileUnicodeTransformationToolController.getFileNameContainsTextField().getText();
60+
String fileNameNotContains = fileUnicodeTransformationToolController.getFileNameNotContainsTextField().getText();
61+
Pattern fileNameCsPattern = null;
62+
Pattern fileNameNCsPattern = null;
63+
if (sRegex) {
64+
fileNameCsPattern = Pattern.compile(fileNameContains, Pattern.CASE_INSENSITIVE);
65+
fileNameNCsPattern = Pattern.compile(fileNameNotContains, Pattern.CASE_INSENSITIVE);
66+
}
67+
while (iterator.hasNext()) {
68+
Path nextPath = iterator.next();
69+
if (Files.isRegularFile(nextPath) && DirectoryTreeUtil.ifMatchText(nextPath.getFileName().toString(), fileNameContains, fileNameNotContains, sRegex, fileNameCsPattern, fileNameNCsPattern)) {
70+
File newFile = nextPath.toFile();
71+
String showHideFile = fileUnicodeTransformationToolController.getShowHideFileChoice().getValue();
72+
if ("非隐藏".equals(showHideFile) && file.isHidden()) {
73+
return;
74+
} else if ("隐藏文件".equals(showHideFile) && !file.isHidden()) {
75+
return;
76+
}
77+
fileUnicodeTransformation(newFile);
6878
}
69-
fileUnicodeTransformation(newFile);
79+
}
80+
} finally {
81+
if (autoCloseable != null) {
82+
autoCloseable.close();
7083
}
7184
}
7285
} else if (file.isFile()) {

src/main/java/com/xwintop/xJavaFxTool/services/debugTools/ZookeeperToolService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ public void connectOnAction() {
5353
} catch (Exception e) {
5454
TooltipUtil.showToast("连接失败!!!");
5555
zkClient = null;
56+
return;
5657
}
5758
zkClient.setZkSerializer(new ZkSerializer() {
5859
@Override

src/main/java/com/xwintop/xJavaFxTool/services/littleTools/CronExpBuilderService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public void parseActionPerformed() throws Exception {
3939
for (int i = 0; i < cronExpBuilderController.getTypeNameString().length - 1; i++) {
4040
this.initObj(regs[i], cronExpBuilderController.getTypeNameString()[i]);
4141
}
42-
this.initYear(regs.length > 6 ? regs[6] : null);
42+
this.initYear(regs.length > 6 ? regs[6] : "");
4343
}
4444

4545
public void parseActionPerformedCronTab() throws Exception {

src/main/java/com/xwintop/xJavaFxTool/services/littleTools/ExcelSplitToolService.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -144,9 +144,16 @@ public void splitFile() throws Exception {
144144
int splitNumber = 0;
145145
if (excelSplitToolController.getSplitType1RadioButton().isSelected()) {
146146
File file = new File(filePath);
147-
LineNumberReader rf = new LineNumberReader(new FileReader(file));
148-
rf.skip(file.length());
149-
splitNumber = (int) Math.ceil((double) rf.getLineNumber() / excelSplitToolController.getSplitType1Spinner().getValue());
147+
LineNumberReader rf = null;
148+
try {
149+
rf = new LineNumberReader(new FileReader(file));
150+
rf.skip(file.length());
151+
splitNumber = (int) Math.ceil((double) rf.getLineNumber() / excelSplitToolController.getSplitType1Spinner().getValue());
152+
} finally {
153+
if (rf != null) {
154+
rf.close();
155+
}
156+
}
150157
saveSplitFile(filePath, splitNumber, newFilePath);
151158
} else if (excelSplitToolController.getSplitType2RadioButton().isSelected()) {
152159
splitNumber = excelSplitToolController.getSplitType2Spinner().getValue();
@@ -311,7 +318,9 @@ private void saveSplitCsv(Iterator<CSVRecord> iterator, String newFilePath, Stri
311318
List<CSVRecord> rows = stringListEntry.getValue();
312319
CSVPrinter printer = CSVFormat.DEFAULT.print(new PrintWriter(newFilePath + "-" + key + ".csv"));
313320
if (excelSplitToolController.getIncludeHandCheckBox().isSelected()) {
314-
printer.printRecord(IteratorUtils.toList(firstRecord.iterator()).toArray());
321+
if (firstRecord != null) {
322+
printer.printRecord(IteratorUtils.toList(firstRecord.iterator()).toArray());
323+
}
315324
}
316325
for (CSVRecord row : rows) {
317326
printer.printRecord(IteratorUtils.toList(row.iterator()).toArray());

src/main/java/com/xwintop/xJavaFxTool/services/littleTools/FileMergeToolService.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -161,16 +161,26 @@ public void mergeCsv(List<File> fileList, String newFilePath) throws Exception {
161161

162162
public void mergeFile(List<File> fileList, String newFilePath) throws Exception {
163163
File resultFile = new File(newFilePath);
164+
FileChannel resultFileChannel = null;
164165
try {
165-
FileChannel resultFileChannel = new FileOutputStream(resultFile, true).getChannel();
166+
resultFileChannel = new FileOutputStream(resultFile, true).getChannel();
166167
for (File file : fileList) {
167-
FileChannel blk = new FileInputStream(file).getChannel();
168-
resultFileChannel.transferFrom(blk, resultFileChannel.size(), blk.size());
169-
blk.close();
168+
FileChannel blk = null;
169+
try {
170+
blk = new FileInputStream(file).getChannel();
171+
resultFileChannel.transferFrom(blk, resultFileChannel.size(), blk.size());
172+
} finally {
173+
if (blk != null) {
174+
blk.close();
175+
}
176+
}
170177
}
171-
resultFileChannel.close();
172178
} catch (Exception e) {
173179
log.error("合并文件失败:", e);
180+
} finally {
181+
if (resultFileChannel != null) {
182+
resultFileChannel.close();
183+
}
174184
}
175185
}
176186

src/main/java/com/xwintop/xJavaFxTool/services/littleTools/PdfConvertToolService.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ public void pdfToImageAction() {
9696

9797
public void pdfToTxtAction() {
9898
PDDocument document = null;
99+
Writer output = null;// 文件输入流,生成文本文件
99100
try {
100101
File pdfFile = new File(pdfConvertToolController.getFileOriginalPathTextField().getText());
101102
String fileTargetPath = pdfConvertToolController.getFileTargetPathTextField().getText();
@@ -107,7 +108,6 @@ public void pdfToTxtAction() {
107108
int endPage = (int) pdfConvertToolController.getChoosePageRangeSlider().getHighValue() + 1;
108109

109110
File textFile = new File(fileTargetPath, FileUtil.getFileName(pdfFile) + ".txt");
110-
Writer output = null;// 文件输入流,生成文本文件
111111
// 文件输入流,写入文件倒textFile
112112
output = new OutputStreamWriter(new FileOutputStream(textFile), "UTF-8");
113113
// PDFTextStrippe来提取文本
@@ -120,17 +120,26 @@ public void pdfToTxtAction() {
120120
stripper.setEndPage(endPage);
121121
// 调用PDFTextStripper的writeText提取并输出文本
122122
stripper.writeText(document, output);
123-
output.close();
123+
124124
TooltipUtil.showToast("pdf转换成txt成功,保存在:" + textFile.getAbsolutePath());
125125
} catch (Exception e) {
126126
log.error("pdf转换错误:", e);
127127
TooltipUtil.showToast("pdf转换错误:" + e.getMessage());
128128
} finally {
129129
try {
130-
document.close();
130+
if (document != null) {
131+
document.close();
132+
}
131133
} catch (IOException e) {
132134
e.printStackTrace();
133135
}
136+
if (output != null) {
137+
try {
138+
output.close();
139+
} catch (IOException e) {
140+
e.printStackTrace();
141+
}
142+
}
134143
}
135144
}
136145

src/main/java/com/xwintop/xJavaFxTool/services/littleTools/TimeToolService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ public void addTimeAction() {
118118
Date startTime = new Date(Long.parseLong(timeToolController.getStartTime2TextField().getText()));
119119
int addTime = Integer.parseInt(timeToolController.getAddTimeTextField().getText());
120120
String addTimeChoiceBoxString = timeToolController.getAddTimeChoiceBox().getValue();
121-
Date endTime = null;
121+
Date endTime = new Date();
122122
if (timeToolController.getTimeSuffixFormatter()[0].equals(addTimeChoiceBoxString)) {
123123
endTime = DateUtils.addDays(startTime, addTime);
124124
} else if (timeToolController.getTimeSuffixFormatter()[1].equals(addTimeChoiceBoxString)) {

0 commit comments

Comments
 (0)