Java 检查文件类型和组织最终字符串的有效方法';s(爪哇)
我正在编写一个程序,允许将列从数据库表导出到工作簿。现在,用户可以选择不同类型的数据库文件。到目前为止,我只有一个允许连接到Access文件的Access驱动程序连接:Java 检查文件类型和组织最终字符串的有效方法';s(爪哇),java,file,oop,Java,File,Oop,我正在编写一个程序,允许将列从数据库表导出到工作簿。现在,用户可以选择不同类型的数据库文件。到目前为止,我只有一个允许连接到Access文件的Access驱动程序连接: private final String ACCESS_DRIVER_CONN = "jdbc:ucanaccess://"; //class variable 我在同一个类中使用此方法: public Connection createConnection() throws IOException { Connect
private final String ACCESS_DRIVER_CONN = "jdbc:ucanaccess://"; //class variable
我在同一个类中使用此方法:
public Connection createConnection() throws IOException {
Connection result = null;
DatabaseFileUtility dbUtil = new DatabaseFileUtility();
String dbFileLoc = ""; // is the location of database selected
String fileType = "";
while(!dbUtil.isValidFile(fileType) && dbFileLoc != null) {
dbFileLoc = dbUtil.getFileLocation();
if(dbFileLoc != null) {
fileType = dbUtil.getFileExtension(dbFileLoc);
}
}
if(dbFileLoc != null) {
try {
if(fileType.equalsIgnoreCase(FileExtensions.ACCDB)) {
result = DriverManager.getConnection(ACCESS_DRIVER_CONN + dbFileLoc);
}
// add more DB file types here
}
catch (SQLException e) {
e.printStackTrace();
}
}
return result;
}
我的经理没有这样做,而是问我是否可以将包含连接驱动程序的所有字符串写入文本文件。但是我使用我创建的FileExtensions类来确定用户试图打开的文件类型。这是FileExtensions类:
public abstract class FileExtensions {
public static final String ACCDB = "accdb";
public static final String XLS = "xls";
}
我还使用DatabaseFileUtility类中的文件扩展名来确定它们打开的文件是否有效:
public boolean isValidFile(String fileType) {
boolean result = false;
if(fileType instanceof String) {
switch(fileType) {
case FileExtensions.ACCDB: result = true;
break;
// insert more cases/db-file-extensions here
default: result = false;
break;
}
}
return result;
}
和我的ExcelFileUtility类中的相同方法,只是案例应该只包含Excel文件才能返回true
我知道这不是最有效的方法。但这是我第一次独自编写这么大的程序,我还不知道如何组织。我的经理问我是否可以在文本文件中编写最终字符串,我知道这将使非程序员更容易添加更多连接。但既然我使用文件扩展名进行检查,而且它们也是最终变量,那么我是否也应该为扩展名创建单独的文本文件?实际上,这种(文件扩展名)检查是否有效?有没有一种更简单、更有组织、更有效率的方法 在文本或配置文件中放置位置等通常不是一件坏事,因为它将配置与逻辑分离。我建议使用XML文件或类似的文件,而不是纯文本文件,以使其更通用,更容易被大多数编程语言解析。然后,您可以编写一个类,读取配置一次,并将其存储起来供其他类访问。通过这种方式,您不必每次需要访问配置时都解析文本文件。@brimborium好的,我做了一些关于如何编写/使用XML的研究,并实际使用它进行了编码。但我的问题是,我希望非程序员能够改变一些事情,比如如果他们想添加更多的连接或扩展,这在XML中当然是可能的。让他们使用一个不直接显示XML代码的XML编辑器。周围有很多这样的人。我只是认为最好使用这些格式之一,而不是自定义文本格式,然后您必须自己解析。文本格式更容易受到攻击,因为多年来它是由一个人(您)而不是整个社区实现的。