原本是想在以读写的方式打开一个文件,然后在此文件中查找相对应的字符并替换,起初偿试的是找到需要的字符后把文件的指针移动到此line的头位置,重写,然而重写的时候是replace而非insert,这样就导致了如果替换的字符小于或大于的时候,就会留下不能被替换掉。
f = File.open("/root/Desktop/test.txt","r+")
c=f.readline => # "test file replace" len=17
假若需要把test字符换成 hello world
那么先把
f.seek(-17,IO:SEEK_CUR) 把文件指针移到test字符的前面,
然后用f.write("hello world")
这时你会发现,"test file replace" 被替换成了"hello worldreplace"
替换字符失败,此方法不行
而另想了个方法:
这个方法实现的是把文件全部读出,读出的同时进行替换,暂时存储在一个变量中,最后把替换完的文件再重写入文件。
此方法对于小文件没问题,要是文件有上面百M的时候,就难以行通了。
tmpfile = []
File.open("#{RAILS_ROOT}/app/controllers/#{MOULD_TABLE_NAME}_controller.rb","r").readlines.each do |line|
re = Regexp.new(MOULD_CONTROLLER_NAME)
re_model = Regexp.new(MOULD_MODEL_NAME)
tmpfile << line.gsub(re,CHANNEL_CONTROLLER_NAME).gsub(re_model,CHANNEL_MODEL_NAME)
end #auto close file
f=File.open(("#{RAILS_ROOT}/app/controllers/#{MOULD_TABLE_NAME}_controller.rb","w+")
f.write(tmpfile)
f.close
分享到:
相关推荐
`FileReadWrite with text aread output.zip_In Writing_file readers`这个标题暗示了我们将会探讨如何在Java中读取和写入文本文件。让我们详细地了解这个主题。 首先,Java提供了一些内置的类来处理文件I/O操作,...
标题 "File writeTo File" 涉及到的是Java编程中关于文件操作的一个重要主题,主要集中在如何将一个文件的内容写入到另一个文件中。在这个过程中,我们通常会使用到Java的IO流(Input/Output Stream)类库。下面将...
* This class is a standalone program to copy a file, and also defines a * static copy() method that other programs can use to copy files. **/ public class FileCopy { /** The main() method of the ...
3. **错误处理**:注意捕获并处理可能出现的异常情况,如IO异常等。 #### 六、总结 通过上述步骤,我们可以实现在Android应用中从`assets`目录安装APK文件的功能。这在某些场景下非常有用,例如当需要动态加载额外...
**Qt6 QML FileIO实现详解** 在Qt6的QML环境中,开发人员可以利用强大的QML语言来构建用户界面,并通过与C++的交互来处理底层系统功能,如文件I/O操作。本示例源码主要展示了如何在QML中进行文件读写,为QML应用...
progress-streams Rust板条箱可为实现io :: Read或io :: Write的类型提供进度回调。 示例读者extern crate progress_strea progress-streams Rust板条箱可为实现io :: Read或io :: Write的类型提供进度回调。 示例...
在本资料"2_fileIO.rar"中,我们可以期待找到一系列关于Linux C文件I/O读写的源码示例,这对于理解这一核心概念至关重要。 在Linux环境下,C语言使用标准库`stdio.h`、`fcntl.h`、`unistd.h`和`sys/stat.h`等头文件...
内含900例c语言代码 如 #include #include <io.h> void main (int argc, char *argv[]) { int access_mode;... printf("File cannot be read/write\n"); else printf("File can be read/write\n"); } }
System.out.println("Failed to create the file."); } } ``` 3. **Java I/O流** Java I/O流提供了对输入输出操作的支持,包括字符流(CharStream)和字节流(ByteStream)。其中,`InputStream`和`...
/* Missing read/write permission, trying to chmod the file */ Process su; su = Runtime.getRuntime().exec("/system/bin/su"); /*String cmd = "chmod 777 " + device.getAbsolutePath() + "\n...
6. **权限和访问控制**:在Java 7之后,`io.File`增加了对文件权限的检查和设置功能,如`canRead()`, `canWrite()`, 和 `setReadable/writable/executable(boolean, boolean)`。 7. **文件监控**:从Java 7开始,`...
file.write(reinterpret_cast*>(&fnum), sizeof(fnum)); file.close(); return 0; } ``` 在上面的代码中,我们使用`write()`函数将整型变量`num`和浮点型变量`fnum`以二进制形式写入文件。注意,需要使用`...
在Java中,进行文件操作主要依赖于`java.io.File`类。通过该类提供的方法,我们可以实现对文件和目录的基本管理,例如创建、删除、重命名文件或目录等。 **1.1 创建文件和目录** - `mkdir()` 方法用于创建单层目录...
- **读写操作**:通过 `read()` 或 `write()` 方法进行读写,可以使用缓冲流和数据流优化性能。 - **关闭流**:使用 `close()` 方法关闭流,释放系统资源。 4. **文件存储封装**: - **抽象复杂性**:封装可以将...
首先,C#中的文件操作主要依赖于`System.IO`命名空间下的类,如`File`、`StreamReader`和`StreamWriter`等。要读取文件,通常会使用`File.ReadAllText`或`File.ReadLines`方法。例如,如果有一个名为"example.txt"的...
- `canRead()`和`canWrite()`检查文件是否可读写。 - `length()`返回文件的大小(字节)。 - `lastModified()`获取文件的最后修改时间。 4. **文件路径的操作** - `getParent()`获取文件的父路径。 - `getName...
在Java编程语言中,`java.io.File`类是一个非常重要的类,它提供了对文件和目录路径名的抽象表示,并且支持一些基本的操作,例如创建、删除文件或目录等。本文将详细介绍`File`类中的常用构造方法及方法,并给出相应...
java.io.File ============================================================================================ *表示磁盘文件或目录的路径 *可以表示一个不存在的路径 创建实例 -------------------------------...
db file sequential read(ms) log file parallel write(ms) log file sync(ms) db file scattered read(ms) #IO WorkLoad Oracle IOPS Oracle MBPS db file sequential read db file scattered read log file ...
要将`File`对象转换为`MultipartFile`,可以使用Apache Commons IO库中的`CommonsMultipartFile`类。以下是一个示例: ```java import org.apache.commons.fileupload.FileItemHeaders; import org.springframework...