我有一个嵌入了数据库的桌面应用程序.当我执行我的程序时,我需要检查特定的表是否存在,或者如果不存在则创建它.
给定一个名为conn的Connection对象作为我的数据库,我该如何检查?
我有一个文件,它由一行组成:
1 , 1 2 , 1 3 6 , 4 ,...
Run Code Online (Sandbox Code Playgroud)
在此表示中,空格分隔整数和逗号.这个字符串是如此巨大,我无法用RandomAccessFile.readLine()读取它(几乎需要4 Gb).这样我就创建了一个缓冲区,它可以包含10个整数.我的任务是对字符串中的所有整数进行排序.
能否请你帮忙?
编辑
@Oscar Reyes
我需要将一些整数序列写入文件然后从中读取.其实我不知道,怎么做.我是新手.所以我决定使用字符来编写整数,整数之间的分隔符是",",序列之间的分隔符是"\n\r".所以我创造了一个读它的怪物:
public BinaryRow getFilledBuffer(String filePath, long offset) throws IOException{
mainFile = new RandomAccessFile(filePath, "r");
if (mainFile.length() == 0){
return new BinaryRow();
}
StringBuilder str = new StringBuilder();
mainFile.seek(mainFile.length()-4); //that is "\n" symbol
char chN = mainFile.readChar();
mainFile.seek(offset);
int i = 0;
char nextChar = mainFile.readChar();
while (i < 11 && nextChar != chN){
str.append(nextChar);
if (nextChar == ','){
i++;
if (i == …
Run Code Online (Sandbox Code Playgroud) 我有一个文本文件.它的设计如下:
#1{1,12,345,867} #2{123, 3243534, 2132131231} #3{234, 35345} #4{}
...(在每个条目的末尾代表"\n")
这是一个例子.事实上我的字符串#number {number,number,...,number}可能真的很长......
这是一个使用此文件的类的构造函数的模板:
public Submatrix(String matrixFilePath, int startPos, int endPos) throws FileNotFoundException{
}
Run Code Online (Sandbox Code Playgroud)
如您所见,子矩阵由startPos和endPos矩阵的字符串数决定.
我的问题是:"我如何计算字符串以达到合适的字符串?" 我的文件可以包含数十亿个字符串.我应该使用LineNumberReader-> readLine()数十亿次?????
例如,你如何创建30个数组(它与char []的类型无关)?在我看来,手工制作它们并不是一个好主意.我想使用"for"循环来做到这一点,但我应该如何指定标识符?
我想创建一个带有嵌入式数据库的desctop应用程序.数据库是JavaDB(Derby).我已将jar文件derby.jar连接到我的项目.问题是我不明白如何注册驱动程序来使用这个数据库.据说我应该使用Class.forName("org.apache.derby.jdbc.EmbeddedDriver")但是如果那是另一个数据库并且它的驱动程序不在java标准包中呢?你可以看到我对此感到困惑.我想知道,如何使用我的连接derby.jar,如何使用其jdbc驱动程序以及如何在指定目录中创建表.
请尽可能详细地给出答案.(我在这里是个假人))))
我有一个代码:
for (int i = 1; i <= Math.ceil(n/m); i++){
RandomAccessFile file_1 = new RandomAccessFile(".\\src\\dataFiles\\fileC_" + i + ".dat", "r");
RandomAccessFile index_1 = new RandomAccessFile(".\\src\\dataFiles\\indexC_" + i + ".dat", "r");
RandomAccessFile sumFile = new RandomAccessFile(".\\src\\dataFiles\\sumFile_" + i + ".dat", "rw");
RandomAccessFile sumIndex = new RandomAccessFile(".\\src\\dataFiles\\sumIndex_" + i +".dat", "rw");
for (int q = 0; q < n; q++){
sumRow = Matrix.getString(file_1, index_1, q).plus(Matrix.getString(tempFile, tempIndex, q));
Matrix.writeLine(sumFile, sumIndex, sumRow);
}
tempFile = sumFile;
tempIndex = sumIndex;
file_1.close();
index_1.close();
}
Run Code Online (Sandbox Code Playgroud)
如您所见,有文件及其索引,它们显示了我在哪里可以找到必要的字符串.程序的这一部分添加位于文件中的整数."file_1"类型的文件我可以关闭然后删除,但是"sumFile"类型的文件不能,因为我在它们上使用referenes:
tempFile …
Run Code Online (Sandbox Code Playgroud) 我有一个使用嵌入式数据库机制的桌面程序.用户第一次执行程序时,必须创建一个数据库.这样,下次有一个数据库,就没有必要创建它.
如何检查是否有数据库并在必要时创建它?
我在这里阅读了一个相关的问题链接文本
有人建议使用巨型文件,然后使用RandomAccessFile.
我的问题是矩阵(由"0"和"1"组成,而不是稀疏)可能真的很大.例如,行大小可以是10 ^ 10000.我需要一种有效的方法来存储这样的矩阵.另外,我需要以这种方式处理这样的文件(如果我将矩阵存储在其中):
说,我有一个包含数字序列的巨型文件.序列中的数字除以","(第一个数字表示原始数字,剩余数字表示矩阵中"1"停留的位置).序列除以符号"|".另外,还有一个符号"||" 它将所有序列分成两组.(这是两个矩阵的视图.可能它效率不高,但我不知道如何让它变得更好.你有任何想法吗?=))我必须阅读,例如,100个数字来自来自第一组的每一行(提取子矩阵)并由它们确定我需要从第二组读取哪些行.所以我需要函数seek().它能用这么大的文件吗?
我是新手.可能有一些有效的方法来存储和读取这样的数据?