Tag: io

如何search一个模式的文件文本,并将其replace为给定的值

我正在寻找一个脚本来search一个模式文件(或文件列表),如果发现,用一个给定的值replace该模式。 思考?

保存并从一个文件中加载MemoryStream

我将一个结构序列化成一个MemoryStream ,我想保存并加载序列化的结构。 那么,如何将一个MemoryStream保存到一个文件中,并从文件中加载回来呢?

在Windows上可靠的File.renameTo()替代?

Java的File.renameTo()是有问题的,特别是在Windows上,似乎。 正如API文档所述 , 这种方法的许多方面的行为本质上是依赖于平台的:重命名操作可能无法将文件从一个文件系统移动到另一个文件系统,它可能不是primefaces的,并且如果具有目标抽象path名的文件可能不成功已经存在。 应始终检查返回值,以确保重命名操作成功。 就我而言,作为升级过程的一部分,我需要移动(重命名)一个可能包含千兆字节数据的目录(大量子目录和不同大小的文件)。 此举总是在同一分区/驱动器内完成的,因此不需要物理移动磁盘上的所有文件。 不应该有任何文件locking目录的内容被移动,但仍然经常renameTo()无法完成其工作,并返回false。 (我只是猜测,也许某些文件locking在Windows上有些任意地过期。) 目前我有一个使用复制和删除的回退方法,但这很糟糕,因为它可能需要很长的时间,这取决于文件夹的大小。 我还在考虑简单地logging一下这样一个事实,即用户可以手动移动文件夹以避免等待几个小时。 但是正确的做法显然是自动而快速的。 所以我的问题是, 你是否知道另一种可靠的方法来在Windows上快速移动/重命名Java ,无论是使用普通的JDK还是外部库。 或者,如果你知道一个简单的方法来检测和释放给定文件夹及其所有内容 (可能是成千上万个文件)的任何文件locking,那也可以。 编辑 :在这个特殊的情况下,似乎我们通过考虑几个更多的东西而使用了renameTo() 。 看到这个答案 。

什么是最简单的方法来读取文件到string?

我正在尝试读取一个简单的文本文件到一个string。 当然,通常的方法是获取inputstream并使用readLine()进行迭代并将内容读入String。 过去做了这么多次,我只是想知道如何在最less的代码行中做到这一点? 在Java中没有像String fileContents = XXX.readFile(myFile/*File*/) ..有什么东西看起来这么简单? 我知道有像Apache Commons IO这样的库提供这样的简化,甚至我可以写一个简单的Util类来做到这一点。 但是我想知道的是 – 这是一个非常频繁的操作,每个人都需要为什么不提供这样简单的function? 是不是真的有一个单一的方法来读取文件到string与一些默认或指定的编码?

跨浏览器自定义样式的file uploadbutton

我试图设置一个file uploadbutton到我的个人喜好,但我找不到任何真正坚实的方法来做到这一点,没有JS。 我还发现了 另外 两个关于这个问题的问题,但是那里的答案要么是JavaScript,要么是Quirksmode的方法 。 这个Quirksmode的方法的主要问题是文件button仍然会有浏览器定义的尺寸,所以它不会自动调整为放在它下面的button。 我已经做了一些代码,基于它,但它将占用文件button通常会占用的空间,所以它根本不会像我想要的那样填充父div。 HTML: <div class="myLabel"> <input type="file"/> <span>My Label</span> </div> CSS: .myLabel { position: relative; } .myLabel input { position: absolute; z-index: 2; opacity: 0; width: 100%; height: 100%; } 这个小提琴演示了这种方法是相当有缺陷的。 在Chrome中,点击!! 下面的第二个演示button无论如何都会打开文件对话框,而且在所有其他浏览器中,文件button并不占用button的正确区域。 有没有更强大的方式来设置file uploadbutton的风格,没有任何JavaScript,最好使用尽可能less的'hacky'编码(因为黑客通常会带来其他问题,例如小提琴中的问题)?

如何序列化一个对象并将其保存到Android中的文件?

说我有一些简单的类,一旦它被实例化为一个对象,我希望能够将其内容序列化到一个文件,并通过稍后加载该文件来检索它…我不知道从哪里开始, 我需要做什么来序列化这个对象到一个文件? public class SimpleClass { public string name; public int id; public void save() { /* wtf do I do here? */ } public static SimpleClass load(String file) { /* what about here? */ } } 这可能是世界上最简单的问题,因为在.NET中这是一个非常简单的任务,但在Android中,我非常新,所以我完全失去了。

为什么访问path被拒绝?

我有一个问题,我想删除我的文件,但我得到一个exception。 if (result == "Success") { if (FileUpload.HasFile) { try { File.Delete(Request.PhysicalApplicationPath + app_settings.login_images + txtUploadStatus.Text); string filename = Path.GetFileName(btnFileUpload.FileName); btnFileUpload.SaveAs(Request.PhysicalApplicationPath + app_settings.login_images + filename); } catch (Exception ex) { Message(ex.ToString()); } } } 另外我应该注意到,我试图从删除的文件夹完全控制networking服务。 完整的例外信息是: System.UnauthorizedAccessException:访问path“C:\ Users \ gowdyn \ Documents \ Visual Studio 2008 \ Projects \ hybrid \ hybrid \ temp_loginimages \ […]

从URL下载/stream文件 – asp.net

我需要stream式传输文件,这将导致在浏览器中作为提示保存。 问题是,该文件所在的目录是虚拟映射的,所以我无法使用Server.MapPath来确定它的实际位置。 该目录与网站不在同一个位置(或者甚至是在活箱上的物理服务器)。 我想要像下面的东西,但是这将允许我通过一个url,而不是一个服务器文件path。 我可能不得不从configuration的基本pathbuild立我的文件path,然后追加到path的其余部分,但希望我可以这样做,而不是。 var filePath = Server.MapPath(DOCUMENT_PATH); if (!File.Exists(filePath)) return; var fileInfo = new System.IO.FileInfo(filePath); Response.ContentType = "application/octet-stream"; Response.AddHeader("Content-Disposition", String.Format("attachment;filename=\"{0}\"", filePath)); Response.AddHeader("Content-Length", fileInfo.Length.ToString()); Response.WriteFile(filePath); Response.End();

UnicodeDecodeError:'charmap'编解码器无法解码Y位置的字节X:字符映射到<undefined>

我试图让一个Python 3程序做一些操作与文本文件充满信息。 但是,当试图读取文件时出现以下错误: Traceback (most recent call last): File "SCRIPT LOCATION", line NUMBER, in <module> text = file.read() File "C:\Python31\lib\encodings\cp1252.py", line 23, in decode return codecs.charmap_decode(input,self.errors,decoding_table)[0] UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 2907500: character maps to <undefined> 如果有人可以给我任何帮助,试图解决这个问题,我将非常感激。 谢谢!

缓冲文件(用于更快的磁盘访问)

我正在处理大文件,直接写入磁盘很慢。 由于文件很大,我无法将其加载到TMemoryStream中。 TFileStream没有缓冲,所以我想知道是否有一个可以提供缓冲stream的自定义库,或者我应该只依靠OS提供的缓冲。 操作系统的缓冲是否可靠? 我的意思是如果caching已满,可能会从caching刷新旧文件(我的),以便为新文件腾出空间。 我的文件在GB范围内。 它包含数百万条logging。 不幸的是,logging不是固定的大小。 所以,我必须做数以百万计的读数(在4到500字节之间)。 阅读(和写作)是连续的。 我不会跳到文件中(我认为这是缓冲的理想select)。 最后,我必须将这样的文件写回到磁盘(再次是数百万小的写入)。 大卫Heffernan赞美的一句话! David提供了一大段代码来提供缓冲磁盘访问。 人们你必须有他的BufferedFileStream! 这是黄金。 不要忘记注册。 谢谢大卫。