import java.io.*;
public class Xiti7{
public static void main(String args[])
{
File f=new File("E,java");;
try{
RandomAccessFile random=new andomAccessFile(f,"rw");
random.seek(0);
long m=random.length();
while(m>=0)
{
m=m-1;
random.seek(m);
int c=random.readByte();
if(c<=255&&c>=0)
{
System.out.print((char)c);
}
else
{
m=m-1;
random.seek(m);
byte cc[]=new byte[2];
random.readFully(cc);
System.out.print(new String(cc));
}
}
}
catch(IOException e){}
}
}
麻烦帮我解释下这个程序那,我看不太懂,特别是while语句里的~~·
上面的应该是输出的unicode编码把,如果要是输出utf-8的,就要改一下。一个utf-8的字符的字节长度可能是1、2、3、4,因此,要输出utf-8编码的字符,就要区别出这个字符是占了几个字节。而utf-8编码,正是通过判断读到的第一个字节取值范围来决定这个字符占几个字节的。如下图,例如如果第一个字节在大小127之内,则代表下一个字符只占一个字节。如果第一个字节小于224大于128,说明下一个字符是占2字节,依次类推。
然后,如果是倒置输出,可以倒着来判断。如果倒着读的第一个字节小于127,那么这个字符占一个字节,移动指针,读取一个字节作为一个字符。如果倒着第一个字节大于127,而倒着读的第二个字节大于191,说明这个字符占两个字节。依次类推。思路就是这样,下面是代码,反正我运行是没错误。。。。
public static void main(String args[]) {用randomaccessfile流将一个文本文件倒置读出
public static void main(String args[]) { try { File file = new File("C:\\\\Users\\\\senn\\\\Desktop\\\\作业\\\\test.txt"); RandomAccessFile random = new RandomAccessFile(file, "rw"); long theLength = random.length(); while (theLength > 0) { random.seek(--...
用JAVA编写程序,将一个文本文件中的内容,以行为单位,调整为倒序排列。提...
public static void read(String filename) { RandomAccessFile rf = null;try { rf = new RandomAccessFile(filename, "r");long len = rf.length();long start = rf.getFilePointer();long nextend = start + len - 1;String line;rf.seek(nextend);int c = -1;while (nextend > ...
java中用RandomAccessFile,如何读取文件中的中文
public final String readLine()throws IOException 从此文件读取文本的下一行。此方法可以从该文件的当前文件指针处成功地读取字节,直到到达行结束符或文件的末尾。每个字节都转换为一个字符,方法是采用该字符的低八位字节值,并将该字符的高八位设置为零。因此,此方法不支持完整的 Unicode 字符集。文本...
RandomAccessFile 解决多线程下载及断点续传
在需要访问文件的部分内容而非从头开始时,使用RandomAccessFile比其他读取类更为高效。与OutputStream、Writer等输出流相比,RandomAccessFile允许自由调整文件记录指针位置,因此它特别适用于向已存在的文件追加内容,而无需从头开始写入。RandomAccessFile提供了一系列方法用于操作文件记录指针,如移动文件指针到...
Android使用RandomAccessFile读取TXT文件seek()之后读取会部分乱码_百 ...
public interface RandomAccessList 实现所使用的标记接口,用来表明其支持快速(通常是固定时间)随机访问。此接口的主要目的是允许一般的算法更改其行为,从而在将其应用到随机或连续访问列表时能提供良好的性能。 将操作随机访问列表的最佳算法(如 ArrayList)应用到连续访问列表(如 LinkedList)时,可产生...
...利用RamdomAccessFile类将一个文件的内容追叫到另一个文件的末尾_百...
public static void main(String[] args)throws Exception { String wj[]=new String [30];RandomAccessFile sj1=new RandomAccessFile("addtest.java","r");int i=0;String s="";while((s=sj1.readLine())!=null){ wj[i]=s;;i++;} sj1.close();RandomAccessFile sj=new Random...
RandomAccessFile
RandomAccessFile (raf) 的 readLine() 方法内部确实有一个默认的字符集在操作,但值得注意的是,使用 new String(line.getBytes("iso-8859-1" + "GBK")) 这样的构造方式实际上存在错误。这里的 "iso-8859-1" 和 "GBK" 应该分别作为参数,而不是像这样串联。正确的方法应该是 new String(line....
java中RandomAccessFile的使用!?
RandomAccessFile是属于随机读取类,是可以对文件本身的内容直接随机进行操作的,可以在文件的指定位置 的读取和写入内容,这在很多时候都是很方便的。read()是从文件中读取内容,一次只读取一个字节,readByte里面的参数是一个byte数组,一次可以读取这个数组大小的数据。它返回的值就是实际读取了多个字节的...
关于RandomAccessFile类
首先你的输出文件:student.txt命名有问题,在windows平台下,这个文件的长度,不是你写入数据的具体长度,平台可能会加上几个字符(你可以把第一个student对象的名字改成"a"实验一下),你的测试没有抛异常,可能是你的测试代码正好能组成一个.txt格式的文件,所以平台没有给你加字节。我觉得最好还是...
android 请问怎么用RandomAccessFile来打开一个assets中的txt文...
你可以参考Android中ContextImp的代码,其中有:@Override public File getDir(String name, int mode) { name = "app_" + name; File file = makeFilename(getDataDirFile(), name); if (!file.exists()) { file.mkdir(); setFilePermissionsFromMode(file.getPath(), mode, FileUtils.S_...