使用RandomAccessFile流将一个文本文件倒置读出

如题,这个应该并不是很难,难的是如果中文和外文混合的话不知道怎么读出,我的代码只能实现英文读出,如果中文和外文混杂的话就会读出乱码。如果某年某月某日某时你看到了这篇文章,并且可以处理现存的多种文字的话请在下面留言,多谢……

Code:
  1. importjava.io.*;
  2. importjava.util.*;
  3. publicclassTestRandomAccessFile{
  4. publicstaticfinalvoidmain(String[]args){
  5. try{
  6. Filef=newFile("exp.txt");
  7. if(!f.exists()){
  8. f.createNewFile();
  9. }
  10. RandomAccessFileraf=newRandomAccessFile(f,"rw");
  11. Stringstr=newString();
  12. str=newScanner(System.in).next();
  13. for(inti=0;i<str.length();i++){
  14. raf.write(str.charAt(i));
  15. }
  16. raf.writeUTF(str);
  17. longlen=str.length();
  18. while(0!=len--){
  19. raf.seek(len);
  20. charch=(char)raf.read();
  21. System.out.println(ch);
  22. }
  23. raf.close();
  24. }catch(IOExceptione){
  25. e.printStackTrace();
  26. }
  27. }
  28. }

相关文章

适配器模式将一个类的接口转换成客户期望的另一个接口,使得原本接口不兼容的类可以相互合作。
策略模式定义了一系列算法族,并封装在类中,它们之间可以互相替换,此模式让算法的变化独立于使用算法...
设计模式讲的是如何编写可扩展、可维护、可读的高质量代码,它是针对软件开发中经常遇到的一些设计问题...
模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,使得子类可以在不改变算法结...
迭代器模式提供了一种方法,用于遍历集合对象中的元素,而又不暴露其内部的细节。
外观模式又叫门面模式,它提供了一个统一的(高层)接口,用来访问子系统中的一群接口,使得子系统更容...