2014-02-25 40 views
0

我在我的twitch.bot中有一个跟随器检查功能,我需要一个读/写解决方案。将整数值写入文件并读取它

应该做到以下几点:

读取一个定数(INT)出来的文件 的写新号码的文件,并删除旧的 创建文件,如果它不存在

(该文件只需要存储1个号码)

那么我该如何做到这一点?

现在,我得到了一个字符串阅读器,只要我读它,我解析成一个INT,但我只有错误,所以我认为它不工作,所以即时通讯寻找一个选项,而不需要从字符串解析它。

import java.io.*; 
public class FollowerChecker { 
public static StringBuilder sb; 
    static String readFile(String fileName) throws IOException { 
     BufferedReader br = new BufferedReader(new FileReader(fileName)); 
     try { 
      sb = new StringBuilder(); 
      String line = br.readLine(); 

      while (line != null) { 
       sb.append(line); 
       sb.append("\n"); 
       line = br.readLine(); 

      } 
      return sb.toString(); 
     } finally { 
      br.close(); 

     } 
    } 



    public static void Writer() { 

     FileWriter fw = null; 

     try { 
      fw = new FileWriter("donottouch.txt"); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 


     StringWriter sw = new StringWriter(); 
     sw.write(TwitchStatus.totalfollows); 


     try { 
      fw.write(sw.toString()); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 


     try { 
      fw.close(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
} 
+1

任何虚拟代码证明你的尝试? –

+0

搜索关于序列化。 – m0skit0

+0

添加了该代码。 BTW该网站(stackoverflow)看起来不喜欢它使用?它谎言一个简单的深蓝色的设计和即时通讯激怒了为什么它现在谎言..我没有改变任何东西:/任何想法我可以重置它? – user3220962

回答

1

它似乎比它应该更复杂。如果你只是想写一个数字而不解析它作为文本,你可以做到这一点。

顺便说一句你也可以使用long,因为它将使用相同的磁盘空间并存储更多的范围。

public static void writeLong(String filename, long number) throws IOException { 
    try (DataOutputStream dos = new DataOutputStream(new FileOutputStream(filename))) { 
     dos.writeLong(number); 
    } 
} 

public static long readLong(String filename, long valueIfNotFound) { 
    if (!new File(filename).canRead()) return valueIfNotFound; 
    try (DataInputStream dis = new DataInputStream(new FieInputStream(filename))) { 
     return dis.readLong(); 
    } catch (IOException ignored) { 
     return valueIfNotFound; 
    } 
} 
相关问题