java -- IO流

java -- IO流,第1张

java -- IO流
File file = new File("C://1.txt");
file.creatNewFile();//创建新的文件,返回值为boolean
file.mkdir();//创建新的文件夹,返回值为boolean
File a = new File("C://1.txt","a.txt");//在文件夹中创建文件
File b = new File("file","b.txt");

a.delete;//删除
getAbsolutePath;//文件路径

IO流
字节流:一切皆字节
-输入流: InputeStream
-输入流: OutputStream
字符流:
-输入流:Reader
-输出流:Writer

OutputStream方法:

close();//关闭
flush();//刷新
write(byte[] b);//写入
write(byte[] b,int off,int len);//从 off开始写入,写len个内容;
write(int b);//将指定的字节写入此输出流

FileOutputStream:

构造方法:
FileOutputStream​(File file); 创建文件输出流以写入由指定的 File对象表示的文件。      
FileOutputStream​(FileDescriptor fdObj);  创建要写入指定文件描述符的文件输出流,该文件描述符表示与文件系统中实际文件的现有连接。   
FileOutputStream​(File file, boolean append); 创建文件输出流以写入由指定的File对象表示的文件,append默认为true;表示在后方追加,否则表示为清空过后重写。
FileOutputStream​(String name); 创建文件输出流以写入具有指定名称的文件。
FileOutputStream​(String name, boolean append); 创建文件输出流以写入具有指定名称的文件

FileOutputStream​ fos = new FileOutputStream​("c://a.text");
FileOutputStream​ fos = new FileOutputStream​("c://a.text",true);

InputStream方法:

close();
read();//从输入流中读取下一个数据字节。 
read​(byte[] b);//从输入流中读取一些字节数并将它们存储到缓冲区数组 b 。 返回值为int,表示读取的个数。

FileInputStream:
FileInputStream​(File file) 通过打开与实际文件的连接来创建 FileInputStream ,该文件由文件系统中的 File对象 file命名。    
FileInputStream​(String name) 通过打开与实际文件的连接来创建 FileInputStream ,该文件由文件系统中的路径名 name命名。 

字符流:
FileWriter:

FileWriter fw = new FileWriter​(File file, boolean append) 在给出要写入的 FileWriter下构造 File ,并构造一个布尔值,指示是否附加写入的数据。 
append​(char c) 将指定的字符追加到此writer。 
write​(int c) 写一个字符。 
flush();
close();

FileReader:

FileReader fr = new FileReader("b.txt");
    int c = fr.read();//读单个
	fr.close();
    System.out.println((char) c);//注意:要转为char
		
		
FileReader fr = new FileReader("b.txt");
char[] chars = new char[100];//创建长度为100
int len =fr.read(chars);//返回长度
String text = new String(chars,0,len); //从0写到len个,转为字符串
System.out.println(text);
System.out.println(text.length());//长度为数组实际长度
fr.close;

字符输出(打印流)

PrintStraem ps = new PrintStraem(c://c.text);
ps.println("嘿嘿嘿1");
ps.println("嘿嘿嘿2");
ps.println("嘿嘿嘿3");

PrintWriter pw = new PrintWriter(c://c.text);
pw.println("嘿嘿嘿1");
pw.println("嘿嘿嘿2");
pw.println("嘿嘿嘿3");

FileOutputStream​ fos = new FileOutputStream​(c://c.text);
PrintWriter pw = new PrintWriter(fw);
pw.println("嘿嘿嘿1");
pw.println("嘿嘿嘿2");
pw.println("嘿嘿嘿3");

//缓存读取流,将字符输入流 转换为带有缓存 可以一次性读取一行的缓存字符读取流
FileReader fw = new FileReader(C://c.txt);
BufferedReader br = new BufferedReader(fw);
String text = br.readLine();//读取一行
System.out.println(text);

序列化与反序列化:
实现Serializable

序列化:
public static void mySerialize(Object obj,String fileName) throws IOException{
OutputStream out = new OutputStream(fileName);
ObjectOutputStream objOut = new ObjectOutputStream(out);
objOut.writeObject(obj);
objOut.close();
}

反序列化:
public static Object myDeserialize(String fileName) throws IOException{
InputStream in = new InputStream(fileName);
ObjectInputStream objIn = new ObjectInputStream(in);
Object obj = objIn.readObject();
objIn.close();
return obj;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5522908.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存