我已经做了很多研究,找到了一个.NET上传组件,我可以用来上传大文件,有一个进度条,可以恢复上传大文件.我遇到过一些组件,比如AjaxUploader,SlickUpload和PowUpload,仅举几例.这些选项中的每一个都需要花钱,只有PowUpload才能进行可恢复的上传,但它使用的是java applet.我愿意支付一个可以很好地完成这些工作的组件,但如果我能自己编写那些最好的组件.
我有两个问题:
谢谢
奥斯汀
[编辑]
我意识到我确实需要能够为我的项目进行可恢复的文件上传,对组件的任何建议都能做到吗?
我使用以下代码来计算文件的MD5SUM -
byte[] b = System.IO.File.ReadAllBytes(file);
string sum = BitConverter.ToString(new MD5CryptoServiceProvider().ComputeHash(b));
Run Code Online (Sandbox Code Playgroud)
这通常工作正常,但如果我遇到一个大文件(~1GB) - 例如ISO映像或DVD VOB文件 - 我得到一个Out of Memory异常.
虽然,我能够在cygwin中为大约10秒的同一文件计算MD5SUM.
请建议如何让我的程序中的大文件工作.
谢谢
我试图读取大CSV和TSV(Tab sepperated)文件大约1000000行或更多.现在我试着读一下TSV含有的~2500000行opencsv,但是它却引发了我的注意java.lang.NullPointerException.它适用于TSV带有~250000线条的较小文件.所以我想知道是否有任何其他Libraries支持阅读巨大CSV和TSV文件.你有什么想法?
每个对我的代码感兴趣的人(我缩短它,所以Try-Catch显然无效):
InputStreamReader in = null;
CSVReader reader = null;
try {
in = this.replaceBackSlashes();
reader = new CSVReader(in, this.seperator, '\"', this.offset);
ret = reader.readAll();
} finally {
try {
reader.close();
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:这是我构建的方法InputStreamReader:
private InputStreamReader replaceBackSlashes() throws Exception {
FileInputStream fis = null;
Scanner in = null;
try {
fis …Run Code Online (Sandbox Code Playgroud) 我的应用程序必须显示许多高分辨率图像(约1900*2200像素),支持捏缩放.为避免内存不足错误,我计划使用解码图像以显示全屏
options.inSampleSize = scale (scale was calculated as Power of 2 as Document)
Run Code Online (Sandbox Code Playgroud)
(我使用的观点是TouchImageView延伸的ImageView)
所以我可以快速加载图像并在屏幕(图像)之间平滑滑动.但是,当我捏缩放时,我的应用程序因缩放图像而丢失细节.如果我加载完整图像,我无法快速加载或平滑滑动,捏缩放后拖动.然后我尝试仅在用户开始捏缩放时加载完整图像,但由于图像非常大,我仍然无法平滑地拖动图像.Android画廊甚至可以完美地实现8Mpx图像.
任何人都可以帮助我.提前致谢
我需要读取一个巨大的文件(15 + GB)并执行一些小的修改(添加一些换行符,以便不同的解析器可以实际使用它).你可能认为通常有这样做的答案:
但我的整个文件都在一行.
到目前为止我的一般方法是非常基本的:
char[] buffer = new char[X];
BufferedReader reader = new BufferedReader(new ReaderUTF8(new FileInputStream(new File("myFileName"))), X);
char[] bufferOut = new char[X+a little];
int bytesRead = -1;
int i = 0;
int offset = 0;
long totalBytesRead = 0;
int countToPrint = 0;
while((bytesRead = reader.read(buffer)) >= 0){
for(i = 0; i < bytesRead; i++){
if(buffer[i] == '}'){
bufferOut[i+offset] = '}';
offset++;
bufferOut[i+offset] = '\n';
}
else{
bufferOut[i+offset] = buffer[i];
}
}
writer.write(bufferOut, 0, bytesRead+offset);
offset …Run Code Online (Sandbox Code Playgroud) 我有大量数据可以在全球4到5个站点保持同步,每个站点大约有半个TB.这会每天更改(添加或更改)大约1.4千兆字节,并且数据可以在四个站点中的任何一个处更改.
很大一部分(30%)的数据是重复的软件包(也许是打包的JDK),因此解决方案必须包含一种方法,即在本地计算机上存在这样的东西,然后抓住它们从另一个网站下载.
版本控制不是问题,这不是代码库本身.
我只是感兴趣,是否有任何解决方案(最好是开源)接近这样的事情?
我的婴儿脚本使用rsync不再削减芥末,我想做更复杂,智能的同步.
谢谢
编辑:这应该是基于UNIX的:)
我必须在C++中读取一个大文本文件(> 10 GB).这是一个具有可变长度行的csv文件.当我尝试使用ifstream逐行读取它但是需要很长时间时,我想这是因为每次我读取它进入磁盘并读取的行时,这使得它非常慢.
有没有办法读取bufferes,例如一次读取250 MB(使用ifstream的读取方法),然后从此缓冲区获取行,我看到很多问题与缓冲区的解决方案可能有不完整的行等.
在c ++中是否有解决方案来处理所有这些情况等.是否有任何开源库可以执行此操作,例如boost等?
注意:我想避免使用c stye FILE*指针等.
我使用以下代码在Windows上的MSVC中打开一个大型(5.1GB)二进制文件.机器有足够的RAM.问题是长度被检索为零.但是,当我将file_path更改为较小的ASCII文件时,代码工作正常.
为什么我不能加载大型二进制文件?我更喜欢这种方法,因为我想要一个指向文件内容的指针.
FILE * pFile;
uint64_t lSize;
char * buffer;
size_t result;
pFile = fopen(file_path, "rb");
if (pFile == NULL) {
fputs("File error", stderr); exit(1);
}
// obtain file size:
fseek(pFile, 0, SEEK_END);
lSize = ftell(pFile); // RETURNS ZERO
rewind(pFile);
// allocate memory to contain the whole file:
buffer = (char*)malloc(sizeof(char)*lSize);
if (buffer == NULL) {
fputs("Memory error", stderr); exit(2);
}
// copy the file into the buffer:
result = fread(buffer, 1, lSize, pFile); // RETURNS ZERO TOO
if (result …Run Code Online (Sandbox Code Playgroud) 我正在为我的公司维护一个半大型网站(几百页)。这是一个静态站点,有大量手动编写(即复制和粘贴)的 HTML,二进制资源散布在各处。这些资产包括产品图像、模拟视频、教程视频、固件文件、手册等,这些资产很少发生变化。理想情况下,它们都将存储在一个或几个系统中,以便可以系统地搜索和检索它们。唉,我们的世界并不理想,事实并非如此。这就是为什么以前的开发人员将所有这些文件的副本与代码一起放入站点的文件结构中。他的工作流程是在自己的 PC 上复制整个网站以进行更改并测试更改,然后通过 FTP 将其上传到 Web 服务器。没有版本控制。
当我接手时,我想引入版本控制,所以我把整个东西放在 Azure DevOps 上托管的 git 存储库中。我对大多数二进制文件使用了 LFS。整个存储库的大小现在约为 10 GB(包括 LFS 对象)。有一个部署管道,它只是克隆存储库并通过 FTP 上传整个内容。
最近,我的公司引入了本地 GitLab 安装,我与他们讨论了将存储库迁移到那里的问题。然而,他们现在不支持 LFS,并坚持认为我的工作流程不是 git 应该使用的方式。撇开我发现他们的推理过于教条这一事实不谈(大型二进制文件不应该在 git 中,尽管有 LFS。如果是的话,你就做错了。),我不否认我的工作流程离开了还有很大的改进空间。
他们建议将所有二进制资产放入外部存储解决方案(例如 Sharepoint)中,并在准备新网站时在 GitLab 中进行部署作业来拉取它们。
这让我想到了我的实际问题。鉴于这些情况:
遵循 GitLab 管理员的建议会有所改进吗?您认为作为网站维护者会给我带来什么好处吗?如果二进制资产不再是存储库的一部分,是否有办法跟踪与存储库历史相关的资产版本?
我希望这个问题足够具体,而不是一个简单的意见问题。