How to change a value of a file using Java IO function

泄露秘密 提交于 2020-01-24 01:16:06

问题


Can anyone help me how to change a line in a file using java IO function. The file is located at SDCard. I have tried some solution from different blog, but failed.

I need to change one attribute wpa_oper_channel=1 to 2,3,4..... as user demand in the file sdcard/sample.txt.

I have also tried using SED command, but still not working. Please suggest if there any solution using java IO function.

The Command I have used using SED :

sed -i 's/wpa_oper_channel=[0-9]\\+/wpa_oper_channel=7/' sample.txt

回答1:


If your configuration file is in the form of a Properties file. This means each line is in a format of key=value. You can easily read, modify and write it. Here is an example, I assume you have no problem with reading and writing a file through streams.

File sdcard = Environment.getExternalStorageDirectory();
File file = new File(sdcard,"sample.txt");
InputStream is = new FileInputStream(file); // Read your existing file
Properties props = new Properties();
props.load(is);
props.setProperty("wpa_oper_channel", "4");
OutputStream out = new FileOutputStream(file); // Your output file stream
prop.store(output, null); // Save your properties file without header

By doing this, you may lose if there is another type of line like comments or else.

Update

I updated to source code. But still you need to get read and write permission.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

I haven't test the code, It will work with some exception handling. If it is not work please specify your error.




回答2:


You just have to

  • read the file's content into memory (there are millions of examples on how to do that with java),
  • change the content (finding the position could be done using e.g. indexOf("wpa_oper_channel="))
  • write the content back to the file (there are millions of examples for that too)



回答3:


What android do you use?

From android 4.4+ user haven't access to edit and remove files from SD Card. You must copy them to external storage and use there. See this link - http://code.google.com/p/android/issues/detail?id=67570



来源:https://stackoverflow.com/questions/30774066/how-to-change-a-value-of-a-file-using-java-io-function

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!