很久不玩java了,很多代码都忘记怎么写了,今天写了一个流媒体的广播发送程序,结果忘记文件读写操作了。岁月是把杀猪刀啊,怀念我们终将逝去的青春。
读文件
File file = new File(fileName);
按字节读取
InputStream in =new FileInputStream(file);
byte [] buf = new byte[1024];
int temp;
while((temp=in.read(buf))!=-1){
System.out.Println(temp)
}
按字符读取
Reader reader = new InputStreamReader(new FileInputStream(file));
int temp;
while((temp=reader.read())!=-1){
if (((char)temp) != "\r"){
System.out.println((char)temp);
}
}
按行读取
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while((line = br.readLine())!=null){
System.out.println(line);
}
随机读取
RandomAccessFile raf = new RandomAccessFile(fileName,"r");
long length=raf.length();
int index= xxx;
raf.seek(index);
raf.read(new byte[1000]);
最初java本没有提供文件的处理,后来加入了Reader和Writer两个抽象类,Reader的子类有FileReader,InputStreamReader,BufferedReader,其中InputStreamReader是字节转换成字符的桥梁。FileReader中的read()是从InputStreamReader中继承而来,读取效率没有太大区别,BufferedReader是对Reader的封装,可以一行一行的来读取文件,效率更高。