我在使用Java自动化框架的黄瓜中工作,一个目录有一个我编码为的文本文件(每次都重命名),我想提取该新的重命名文件,并在打开该文件后要更新一些特定数据并保存以备后用。
任何人都可以帮助我如何打开文本文件,如何更新并再次关闭它, 要更新特定数据(请参见下面的示例)(第二个raw中有“名称”列和“值”,要每次使用任何随机字符串更新“名称”数据) 文本文件数据:
名称| DOB |性别| Komal | 1992年5月6日|女
答案 0 :(得分:1)
您不能使用Java更新现有文件。
答案 1 :(得分:0)
下面的程序将用所需的字符串替换第4列数据(Komal),我们需要传递包含1个txt文件的目录名称。
public class MyApplication {
public static void main(String[] args) throws Exception {
getTxtFileWithInADirectory("D:\\Learning\\newyork");
}
static void getTxtFileWithInADirectory(String directoryPath) {
String fileExtension;
File folder = new File(directoryPath);
File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
fileExtension = listOfFiles[i].getName().substring(listOfFiles[i].getName().lastIndexOf("."), listOfFiles[i].getName().length());
if(fileExtension.contains(".txt")) {
updateTXTFile(listOfFiles[i].getAbsolutePath(),"Poonam");
}
} else {
System.out.println(".txt file not found");
}
}
}
static void updateTXTFile(String fileToBeModified, String newText) {
String oldContent = "";
BufferedReader reader = null;
FileWriter writer = null;
try
{
reader = new BufferedReader(new FileReader(fileToBeModified));
//Reading all the lines of input text file into oldContent
String line = reader.readLine();
while (line != null)
{
oldContent = oldContent + line + System.lineSeparator();
line = reader.readLine();
}
String[] items = oldContent.split("\\|");
String newContent = oldContent.replace(items[3], " "+newText+" ");
writer = new FileWriter(fileToBeModified);
writer.write(newContent);
}catch (Exception e)
{
e.printStackTrace();
}
finally
{
try
{
//Closing the resources
reader.close();
writer.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
}