io的使用
采用流技术:
字节
inputStream/outputStream
字符
reader/writer
首先介绍的是java的io的使用方法 在下面的案例中d:/demo这些是你本地的路径,需要你自己去创建的
public class Testio {
public static void main(String[] args) {
//输入输出选择字符
try {
// InputStream in =new FileInputStream("D:/demo/a/1.jpg");//池塘
// OutputStream out=new FileOutputStream("D:/demo/b/1.jpg");//新池塘
//
// byte[] buffer=new byte[1024];
// int len=0;
//
// //泵
// while(true){
// len=in.read(buffer);//管道
// if(len==-1){
// break;
// }
// out.write(buffer,0,len);
// out.flush();
// }
// out.close();
// in.close();
// System.out.println("ok");
//字节流的读写
BufferedReader in=new BufferedReader(new InputStreamReader(new FileInputStream("D:/demo/a/介绍.txt"),"gbk"));
PrintWriter out=new PrintWriter(new OutputStreamWriter(new FileOutputStream("D:/demo/b/介绍.txt"),"utf-8"));
String str=null;
while (true){
str=in.readLine();
if(str==null){
break;
}
out.println(str);
out.flush();
}
out.close();
in.close();
System.out.println("ok");
} catch (Exception e) {
e.printStackTrace();
}
}
}
各个方法的使用可以参照他的api 这个简单的案例就把各个io的使用整合到了一起
f=open("D:/demo/a/介绍.txt")
of=open("D:/demo/b/介绍p.txt","w")
for line in f:
of.write(line)
print("ok")
# 用默认的缓冲区
t=open("D:/demo/a/1.jpg","rb")
t1=open("D:/demo/b/123.jpg","wb")
for tu in t:
t1.write(tu)
print("ok")
#自定义的缓冲区
t=open("D:/demo/a/1.jpg","rb")
t1=open("D:/demo/b/1234.jpg","wb")
t.seek(0,2);#文件定位
# tell()方法告诉你文件内的当前位置;换句话说,下一次的读写会发生在文件开头这么多字节之后。
# seek(offset [,from])方法改变当前文件的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。
# 如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。
size=t.tell();
t.seek(0,0)
ofsize=0;
n=0;
while True:
if ofsize>size:
break;
b=t.read(10240)
t1.write(b)
ofsize+=10240;
n+=1;
print(n)
#截取的一半
t=open("D:/demo/a/1.jpg","rb")
t1=open("D:/demo/b/1234.jpg","wb")
t.seek(0,2);
size=t.tell();
t.seek(0,0)
ofsize=size/3;
n=0;
while True:
if ofsize>size:
break;
b=t.read(10240)
t1.write(b)
ofsize+=10240;
n+=1;
print(n)
#对象的序列华
import pickle
class Person:
def __init__(self,name=None,age=None):
self.name=name;
self.age=age;
def __str__(self):
return "卡吉瑟的卡号大 啊撒旦"
#序列化对象,把对象保存到本地
p=Person()
pickle._dump(p,open("D:/demo/b/Person.data","wb"))
print(p)
#把 本地的对象取出来
p1=pickle.load(open("D:/demo/b/Person.data","rb"))
print(p1)
#把文件夹中的文件放到另一个里面
#方法一:
import shutil
old="D:/demo/a"
new=old[len(old)-1:]
new1="D:/demo/b/"
new1=new1+new
shutil.copytree(old, new1)
在上述的案例中每一个案例中都有相对应的解释大家可以参照去理解