先把指针移动到最后一行,然后倒着读一千行
public void seek(long pos)
throws IOException设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入 *** 作。偏移量的设置可能会超出文件末尾。偏移量的设置超出文件末尾不会改变文件的长度。只有在偏移量的设置超出文件末尾的情况下对文件进行写入才会更改其长度。
参数:
pos - 从文件开头以字节为单位测量的偏移量位置,在该位置设置文件指针。
抛出:
IOException - 如果 pos 小于 0 或者发生 I/O 错误。
--------------------------------------------------------------------------------
public long length()
throws IOException返回此文件的长度。
返回:
按字节测量的此文件的长度。
抛出:
IOException - 如果发生 I/O 错误。
import javaio;
public class TestFileWriter{
public static void main(String[] args) throws Exception{
FileReader fr = null;
FileWriter fw = null;
int b = 0;
char[] cbuf = new char[18];
fr = new FileReader("E:\\java\\io\\1txt");//1txt保存的位置
fw = new FileWriter("E:\\java\\io\\2txt");//2txt保存的位置
while ((b=frread(cbuf,0,18))!=-1) {
fwwrite(cbuf,0,18);
}
frclose();
fwclose();
}
}
不是吧,你连这都不知道
DataOutStream 是二进制的写,
这个"二进制",就是你所谓的乱码了。。。。
//二进制的读写,一般是对一个对象的读写,你这种用法很少很少
import javaioBufferedReader;
import javaioBufferedWriter;
import javaioDataInputStream;
import javaioDataOutputStream;
import javaioFileInputStream;
import javaioFileNotFoundException;
import javaioFileOutputStream;
import javaioFileReader;
import javaioFileWriter;
import javaioIOException;
import javaioInputStreamReader;
import javautilScanner;
class Student{ //二进制的读写,一般都是读写一个对象中的数据
String name;
int stuNo;
int num,chinese,math;
}
public class Maintest {
public void inputData() throws IOException{//增加数据
DataOutputStream dos=new DataOutputStream(new FileOutputStream("C:\\Documents and Settings\\Administrator\\桌面\\infotxt"));
DataInputStream dis=new DataInputStream(new FileInputStream("C:\\Documents and Settings\\Administrator\\桌面\\infotxt"));
Scanner sc=new Scanner(Systemin);
Student stu=new Student();
//输出学生信息保存在对象中
Systemoutprintln("输入1个学员的信息");
Systemoutprint("姓名:");
stuname=scnext();
Systemoutprintln("学号:");
stustuNo=scnextInt();
Systemoutprintln("chinese");
stuchinese=scnextInt();
Systemoutprintln("math");
stumath=scnextInt();
//将对象中的数据写入输出流中
doswriteUTF(stuname);
doswriteInt(stustuNo);
doswriteInt(stunum);
doswriteInt(stuchinese);
doswriteInt(stumath);
dosclose();
//从对象中读取
String readName=disreadUTF();
int readStuNo=disreadInt();
int readChinese=disreadInt();
int readMath=disreadInt();
Systemoutprintln(readName);
Systemoutprintln(readStuNo);
Systemoutprintln(readChinese);
Systemoutprintln(readMath);
disclose();
}
public static void main(String[] args) throws Exception {
Maintest mt=new Maintest();
mtinputData();
}
}
以上就是关于JAVA程序读txt文件里最后1000行怎么实现全部的内容,包括:JAVA程序读txt文件里最后1000行怎么实现、编写一个java程序,将file1.txt文件中的内容复制到file2.txt中、麻烦高手帮忙改下JAVA程序,我想问下为什么生成的TXT文件是乱码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)