java - 带附加文件的 If 语句

标签 java try-catch randomaccessfile

需要编写一个程序,仅当文件的最后一个字符不是 int/number 时才删除它。这是我到目前为止所拥有的。

import java.io.*;

 public class RemoveTurn{
     public static void main(String[] arg){
         try{
         RandomAccessFile raf = new RandomAccessFile("test.txt", "rw");
         long length = raf.length();
         System.out.println("File Length="+raf.length());
         //supposing that last line is of 8 
         raf.setLength(length - 1);
         System.out.println("File Length="+raf.length());
         raf.close();
         }catch(Exception ex){
         ex.printStackTrace();
     }
   }
}

程序框架取自:happycodings.com

最佳答案

简单的想法是

  1. 以字符串形式读取文件。
  2. 检查 String 的最后一个字符,如果是数字则将其删除
  3. 将其写回文件

我绝对推荐您使用 apahe common IO ,你的生活将会变得非常轻松。

示例代码:

    File f=new File("");
    String s = FileUtils.readFileToString(f);  //read the file using common IO
    char c=s.charAt(s.length()-1);   //get the last char of your string
    if(!(c>='0' && c<='9')){           //if not number
        s=s.substring(0,s.length()-1);  //remove it
    }
    FileUtils.write(f, s);  //write back to the file  using common IO

编辑:

您不需要使用 Common IO,还有许多其他方法可以在 java 中读取写入文件

关于java - 带附加文件的 If 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30782439/

相关文章:

java - JMockit 未正确初始化

Java访问实例变量

javascript - 如何将函数内的捕获错误传递给父级

java - 为什么我的 try and catch 卡在了一个循环中?

Java - 如何有效地编写一个偶尔有漏洞的顺序文件

java - Websphere 7 找不到 ActionServlet

python - 尝试除了不从类中捕获 IOError 之外

java - 即使缓冲区很小,BufferedReader 的 readLine 也不会更改文件指针

java - 使用java从大文件中读取 block

java - 带有值提取器的 ObservableMap?