java文件操作是通过什么实现的,java对文件类提供了许多操作方法
如何解决写爬虫IP受阻的问题?立即使用。
先介绍一下字节流和字符流的概念和区别:
(学习视频分享:java教学视频)
区分字节流和字符流的概念。
字节流:读取字节流时,读取时返回一个字节;主要用于阅读图片、MP3和AVI视频文件。
字符流:字符流使用字节流读取一个或多个字节。比如读中文的时候,它会一次读2个字节。只要是处理纯文本数据,就应该优先使用字符流。
字节流和字符流的区别
字节流操作的基本单位是字节;字符流操作的基本单位是Unicode符号。默认情况下,字节不使用缓冲区;字符流使用缓冲区。字节通常用于处理二进制数据。事实上,它可以处理任何类型的数据,但它不支持直接写入或读取Unicode符号。字符流通常处理文本数据,它支持Unicode符号的读写。
常见文件操作:
创建和删除文件夹
string path= F:\ \ test ;
File myFile=新文件(路径);
如果(!myFile.exists()) {
//创建一个文件夹
my file . mkdir();
//my file . mkdirs();
//删除文件夹
my file . delete();
}
//mkdirs()可以建立多级文件夹,而mkdir()只能建立一级文件夹来创建和删除文件。
String content= Hello World
//第一种方法:根据文件路径和文件名
string path= F:\ \ test ;
String filename= test.txt
File myFile=新文件(路径,文件名);
//第二种方法
string file= F:\ \ test \ \ test . txt ;
File myFile=new File(文件);
如果(!myFile.exists()) {
//创建文件(前提是目录已经存在,否则新建一个目录或文件夹)
my file . create new file();
//删除文件
my file . delete();
}写入文件
//第一种类型:字节流FileOutputStream
file output stream fop=new file output stream(my file);
byte[]contentInBytes=content . getbytes();
fop . write(contentInBytes);
fop . flush();
fop . close();
//第二种类型:FileWriter(如果参数为true,则为追加内容;如果不是,则是被覆盖的内容)
FileWriter fw=new FileWriter(my file,true);
fw.write(内容);
fw . close();
//第三种类型:BufferedWriter
buffered writer bw=new buffered writer(new file writer(my file,true));
bw.write(内容);
bw . flush();
bw . close();
//第四种类型:PrintStream printstream和PrintWriter
//byte PrintStream: printstream
//字符打印流:PrintWriter
PrintWriter pw=new PrintWriter(new FileWriter(my file,true));
pw.println(内容);//换行
pw.print(内容);//不换行
pw . close();
//常用的BufferedWriter和PrintWriter读取文件
文件输入流
//第一种:按字节读取文件,常用于读取二进制文件,如图片、声音、图像等文件。
InputStream in=new file InputStream(my file);
//一次读取一个字节
int tempbyte
while ((tempbyte=in.read())!=-1) {
system . out . write(tempbyte);
}
in . close();
//一次读取多个字节
int byteread=0;
byte[] tempbytes=新字节[100];
readfromfile . showavailablebytes(in);
while((byteread=in . read(temp bytes))!=-1) {
System.out.write(tempbytes,0,byteread);
}
//system . out . write()方法是字符流,System.out.println()方法是字节流InputStreamReader。
//第二种:以字符为单位读取文件,常用于读取文本、数字等文件。
reader reader=new inputstream reader(new file inputstream(my file));
//一次读取一个字节
int tempchar
while ((tempchar=reader.read())!=-1) {
//对于windows,\ r \当这两个字符在一起时,表示换行。
//但是这两个字符分开显示的话,就要换两次线。
//因此,mask \r,或mask \ n .否则,空白行会多得多。
if (((char) tempchar)!=\r) {
system . out . print((char)temp char);
}
}
reader . close();
//一次读取多个字节
char[]tempchars=new char[30];
int char read=0;
//将多个字符读入字符数组,charread是一次读取的字符数。
while((charread=reader . read(tempchars))!=-1) {
//也屏蔽掉\ r不显示它
if((char read==tempchars . length)(tempchars[tempchars . length-1]!= \ r ){
system . out . print(tempchars);
}否则{
for(int I=0;我读;i ) {
if (tempchars[i]==\r) {
继续;
}否则{
system . out . print(tempchars[I]);
}
}
}
}BufferedReader
//第三种:以行为单位读取文件,常用于读取面向行的格式化文件。
buffered reader reader=new buffered reader(new file reader(my file));
String tempString=null
int line=1;
//一次读入一行,直到读取空文件结束。
while((tempString=reader . readline())!=null) {
//显示行号
system . out . println( line line : tempString);
线;
}
reader . close();
//常用BufferedReader遍历文件(以删除一个文件夹下的所有文件为例)
file[]files=my file . list files();
for(int I=0;ifiles.lengthi ){
if(files[i].isDirectory()){
文件[i]。delete();
}
}文件功能:
//确定文件是否存在
myFile.exists()
//读取文件名
myFile.getName()
//读取文件路径(相对路径)
myFile.getPath()
//读取文件的绝对路径
myFile.getAbsolutePath()
//读取文件的父路径
新文件(myFile.getAbsolutePath())。getParent()
//读取文件的大小
myFile.length()
//确定文件是否隐藏
myFile.isHidden()
//确定文件是否可读
myFile.canRead()
//确定文件是否可写
myFile.canWrite()
//确定文件是否是文件夹。
MyFile.isDirectory()相关推荐:java入门。以上是java中常见文件操作的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。