您的位置:首页 > 房产 > 建筑 > 专业企业网站制作_查备案怎么查询_长沙网站到首页排名_广告投放怎么做

专业企业网站制作_查备案怎么查询_长沙网站到首页排名_广告投放怎么做

2025/1/5 15:39:27 来源:https://blog.csdn.net/2302_80713883/article/details/144835614  浏览:    关键词:专业企业网站制作_查备案怎么查询_长沙网站到首页排名_广告投放怎么做
专业企业网站制作_查备案怎么查询_长沙网站到首页排名_广告投放怎么做

 笔上得来终觉浅,绝知此事要躬行

🔥 个人主页:星云爱编程

🔥 所属专栏:javase

🌷追光的人,终会万丈光芒  

 🎉欢迎大家点赞👍评论📝收藏⭐文章

​  

目录

一、文件

1.1基本介绍

1.2文件流

1.3常用的文件操作

1.3.1创建文件对象相关构造器和方法

1.3.2获取文件的相关信息

1.3.3目录的操作和文件删除 

二、IO 流原理及流的分类 

2.1 IO流原理

2.2流的分类 

2.3IO 流体系图

三、IO流常用的类 

3.1FileInputStream

3.1.1基本介绍

3.1.2常用方法

3.1.3使用案例

3.2FileOutputStream

3.2.1基本介绍

3.2.2得到FileOutputStream对象的方法

3.2.3写入内容方式

(1)写入一个字节

(2)写入字符串

3.2.4使用案例

​编辑 3.3FileReader

3.3.1基本介绍

3.3.2常用方法

3.3.3使用案例

3.4FileWriter

3.4.1基本介绍

3.4.2常用方法

3.4.3使用案例

四、节点流和处理流

4.1基本介绍

 4.2节点流和处理流一览图

 4.3节点流和处理流的区别与联系

4.4处理流的功能主要体现在以下两个方面

4.5BufferedReader和BufferedWriter

4.5.1基本介绍

4.5.2常用方法

4.5.2使用案例

4.6 BufferedInputStream 和 BufferedOutputStream

4.6.1基本介绍

4.6.2使用案例

 4.7对象流:ObjectInputStream 和 ObjectOutputStream

4.7.0序列化与反序列化

4.7.1基本介绍

4.7.2使用案例

4.7.3注意事项

4.8标准输入输出流

4.8.1基本介绍

4.8.2使用案例

4.9转换流:InputStreamReader 和 OutputStreamWriter

4.9.1基本介绍

4.9.2使用案例

 4.10打印流:PrintStream和PrintWriter

4.10.1基本介绍

4.10.2使用方式

4.10.3使用案例

五、Properties 类

5.1基本介绍

5.2常用方法

结语


一、文件

1.1基本介绍

文件是保存数据的地方,例如word文档、txt文本文件,excel文件等都是文件。文件能保存图片,视屏,音频等。

1.2文件流

文件在程序中是以流的形式来操作的:

流:数据在数据源(文件)和程序(内存)之间经历的路程。

输入流:数据从数据源(文件)到程序(内存)的路径。

输出流::数据从程序(内存)到数据源(文件)的路径。 

1.3常用的文件操作

1.3.1创建文件对象相关构造器和方法

(1)根据路径构建一个File对象:

new File(String pathname);

(2)根据父目录文件+子路径构建:

new File(File parent,String child);

(3)根据父目录+子路径构建 :

new File(String parent,String pathname);

(4)createNewFile

如果命名文件不存在且成功创建,则返回true。

如果命名文件已经存在,则返回false。

其源码如下:

创建案例:在D盘创建test_1.txt文件

public class Test1 {public static void main(String[] args) {String pathname="D:\\test_1.txt";//文件路径File file = new File(pathname);try {if(file.createNewFile())//创建文件{System.out.println("文件创建成功");}} catch (IOException e) {throw new RuntimeException(e);}}
}

1.3.2获取文件的相关信息

相关方法:

方法说明
getName获取文件名
getAbsolutePath获取绝对路径
getParent父级目录
length获取文件大小(字节)
exists判断文件是否存在
isFile判断是不是文件
isDirectory判断是不是目录

1.3.3目录的操作和文件删除 

方法说明
mkdir创建一级目录
mkdirs创建多级目录
delete删除空目录或文件

二、IO 流原理及流的分类 

2.1 IO流原理

(1)I/O是Input/Output的缩写,I/O技术是非常实用的技术,用于处理数据运输,例如:读/写文件、网络通讯等。

(2)java程序中,对于数据的输入/输出操作以"流(stream)"的方式进行。

(3)java.io包下提供了各种“流”类和接口,用以获取不同种类的数据,并通过方法输入/输出数据。

(4)输入input:读取外部数据(磁盘、光盘等存储设备的数据)到程序(内存)中。

(5)输出output:将程序(内存)数据输出到磁盘、光盘等存储设备中。

2.2流的分类 

(1)按操作数据单位不同分为:字节流(1byte)二进制文件、字符流(按字符)文本文件;

(2)按数据流的流向不同分为:输入流、输出流;

(3)按流的角色不同分为:节点流、处理流/包装流。

抽象基类字节流字符流
输入流InputStreamReader
输出流OutputStreamWriter

说明:

①java的IO流涉及40多个类,但非常规则,都是从如上4个抽象基类派生的;

②由这四个类派生出来的子类名称都是以父类名称作为子类名称后缀。 

2.3IO 流体系图

三、IO流常用的类 

3.1FileInputStream

3.1.1基本介绍

文件输入流:读取文件,单个字节的读取,效率比较低

3.1.2常用方法

(1)read

从该输入流读取一个字节的数据。 如果没有输入可用,此方法将阻止。

如果返回-1, 表示读取完毕。

源码如下:

(2)read(byte[] b)

从该输入流读取最多b.length字节的数据到字节数组。 此方法将阻塞,直到某些输入可用。

如果返回-1, 表示读取完毕;如果读取正常, 返回实际读取的字节数。

源码如下:

(3)close

关闭文件流,释放资源

3.1.3使用案例

(1)用read()方法读取文件:

import java.io.FileInputStream;
import java.io.IOException;public class Test3 {public static void main(String[] args) {String pathname="D:\\javacode\\javacode\\IO_1\\test_1.txt";//文件路径int readData=0;FileInputStream fileInputStream=null;try {//创建FileInputStream对象,用于读取文件fileInputStream = new FileInputStream(pathname);while((readData=fileInputStream.read())!=-1){System.out.print((char)readData);//将读取的内容转为char显示}} catch (IOException e) {throw new RuntimeException(e);}finally {try {fileInputStream.close();} catch (IOException e) {throw new RuntimeException(e);}}}
}

 (2)用read(byte[] b)方法读取文件:

import java.io.FileInputStream;
import java.io.IOException;public class Test4 {public static void main(String[] args) {String pathname="D:\\javacode\\javacode\\IO_1\\test_1.txt";//文件路径byte[] buf = new byte[8]; //一次读取 8 个字节int readlen=0;FileInputStream fileInputStream=null;try {//创建FileInputStream对象,用于读取文件fileInputStream = new FileInputStream(pathname);while((readlen=fileInputStream.read(buf))!=-1){System.out.print(new String(buf,0,readlen));//将读取的内容转为char显示}} catch (IOException e) {throw new RuntimeException(e);}finally {//关闭文件流,释放资源try {fileInputStream.close();} catch (IOException e) {throw new RuntimeException(e);}}}
}

3.2FileOutputStream

3.2.1基本介绍

文件输出流:将数据写到文件中。

3.2.2得到FileOutputStream对象的方法

(1)new FileOutputStream(String filePath)

当写入内容时,会覆盖原来的内容。

(2)new FileOutputStream(String filePath,boolean append)

若append为true ,当写入内容时,是追加到文件后面;

若append为false ,当写入内容时,会覆盖原来的内容。

3.2.3写入内容方式

(1)写入一个字节

write(int b)

将指定的字节写入此文件输出流。

eg:

fileOutputStream.write('a');
(2)写入字符串

①write(byte[] b)

b.length个字节从指定的字节数组写入此文件输出流。

源码如下:

eg:

String str ="hello";
fileOutputStream.write(str.getBytes());

注意:getBytes()方法可以把字符串转化为字节数组 。

②write(byte[] b, int off, int len)

len字节从位于偏移量 off的指定字节数组写入此文件输出流。

源码如下:

 eg:

String str ="hello";
fileOutputStream.write(str.getBytes(),0,4);

3.2.4使用案例

(1)写入一个字符串

import java.io.FileOutputStream;
import java.io.IOException;public class Test5 {public static void main(String[] args) {String pathname="D:\\javacode\\javacode\\IO_1\\test_1.txt";//文件路径String str="happy new year!";//要写入的内容FileOutputStream fileOutputStream=null;try {fileOutputStream = new FileOutputStream(pathname, false);//创建对象,不可追加//fileOutputStream.write(str.getBytes());fileOutputStream.write(str.getBytes(),0,str.length());} catch (IOException e) {throw new RuntimeException(e);}finally {try {fileOutputStream.close();} catch (IOException e) {throw new RuntimeException(e);}}}
}

(2)完成图片/音乐的拷贝: 

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;public class CopyPicture {public static void main(String[] args) {String srcFilepath="D:\\javacode\\javacode\\IO_1\\mysql_1.jpg";//源路径String destFilepath="D:\\javacode\\javacode\\IO_1\\mysql_2.jpg";//拷贝路径FileInputStream fileInputStream = null;FileOutputStream fileOutputStream = null;try {fileInputStream=new FileInputStream(srcFilepath);fileOutputStream=new FileOutputStream(destFilepath);//定义一个字节数组,提高读取效果byte[] buf = new byte[1024];int readLen = 0;while ((readLen = fileInputStream.read(buf)) !=-1) {//读取到后,就写入到文件 通过 fileOutputStream//即,是一边读,一边写fileOutputStream.write(buf, 0, readLen);//一定要使用这个方法}System.out.println("拷贝 ok~");} catch (IOException e) {throw new RuntimeException(e);}finally {//关闭输入流和输出流,释放资源try {if(fileInputStream!=null) {fileInputStream.close();}if(fileOutputStream!=null) {fileOutputStream.close();}} catch (IOException e) {throw new RuntimeException(e);}}}
}

拷贝完成! 

 3.3FileReader

3.3.1基本介绍

FileReader是用于读取字符流的。

3.3.2常用方法

(1)构造方法:

new FileReader(File file);
new FileReader(String fileName);

 (2)read()

每次读取单个字符,返回该字符,如果读到文件末尾返回-1。

源码如下:

(3)read(char[] cbuf) 

批量读取多个字符到数组,返回读取到的字符数,如果读到文件末尾返回-1。

源码如下:

3.3.3使用案例

(1)使用read()方法读取文件

import java.io.FileReader;
import java.io.IOException;public class Test6 {public static void main(String[] args) {String path="D:\\javacode\\javacode\\IO_1\\read.txt";FileReader fileReader=null;int readData=0;try {fileReader = new FileReader(path);while((readData=fileReader.read())!=-1){System.out.print((char) readData);}} catch (IOException e) {throw new RuntimeException(e);}finally {//关闭字符流,释放资源try {fileReader.close();} catch (IOException e) {throw new RuntimeException(e);}}}
}

(2) 使用read(char[] b)读取文件

public class Test7 {public static void main(String[] args) {String path="D:\\javacode\\javacode\\IO_1\\read.txt";FileReader fileReader=null;int readlen=0;char []buf=new char[8];try {fileReader = new FileReader(path);while((readlen=fileReader.read(buf))!=-1){System.out.print(new String(buf,0,readlen));}} catch (IOException e) {throw new RuntimeException(e);}finally {//关闭字符流,释放资源try {fileReader.close();} catch (IOException e) {throw new RuntimeException(e);}}}
}

3.4FileWriter

3.4.1基本介绍

FileWriter是用于写入字符流。

3.4.2常用方法

(1)构造方法

FileWriter(String fileName);

覆盖模式,相当于流的指针在文件首端。

源码如下:

FileWriter(String fileName, boolean append);

可追加模式,

若append为true ,当写入内容时,是追加到文件后面;

若append为false ,当写入内容时,会覆盖原来的内容。

源码如下:

(2)write(int b)

写入单个字符。

(3)write(char[] cbuf)

写入指定数组。

(4)write(String str)

写入整个字符串。

(5)write(String str, int off, int len)

 将len字符从位于偏移量off的指定字符串写入此字符输出流。

其源码如下:

(6)write(char[] cbuf, int off, int len)

将len字符从位于偏移量off的指定字符数组写入此字符输出流。

源码如下:

 (7)close()

关闭文件流,释放资源。

注意:FileWriter使用后,必须要关闭(close)或刷新(flush),否则写入不到指定的文件。

3.4.3使用案例

(1)将字符串写入文件

import java.io.FileWriter;
import java.io.IOException;public class Test1 {public static void main(String[] args) {String path="D:\\javacode\\javacode\\IO_1\\write.txt";//写入路径String str="今天是2025年,祝大家新年快乐!";//写入内容FileWriter fileWriter=null;try {fileWriter = new FileWriter(path);//默认是覆盖写入fileWriter.write(str);} catch (IOException e) {throw new RuntimeException(e);}finally {try {if(fileWriter!=null) {fileWriter.close();}} catch (IOException e) {throw new RuntimeException(e);}}}
}

(2)拷贝文件

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;public class Test2 {public static void main(String[] args) {String srcFilePath="D:\\javacode\\javacode\\IO_1\\happy.txt";//源路径String destFilePath="D:\\javacode\\javacode\\IO_1\\happy2.txt";//拷贝路径FileReader fileReader=null;FileWriter fileWriter=null;try {fileReader=new FileReader(srcFilePath);//创建字符输入流对象fileWriter=new FileWriter(destFilePath);//创建字符输出流对象char []buf=new char[8];int readLen=0;while((readLen=fileReader.read(buf))!=-1){fileWriter.write(buf,0,readLen);}System.out.println("拷贝完成~");} catch (IOException e) {throw new RuntimeException(e);}finally {//关闭流,释放资源try {if(fileWriter!=null) {fileWriter.close();}if(fileReader!=null){fileReader.close();}} catch (IOException e) {throw new RuntimeException(e);}}}
}

四、节点流和处理流

4.1基本介绍

(1)节点流可以从一个特定的数据源读写数据,例如:FileReader、FileWriter.

(2)处理流(也叫包装流)是"连接"在已存在的流(节点流和处理流)之上,为程序提供更为强大的读写功能;例如:BufferedReader,BufferedWriter.

 4.2节点流和处理流一览图

分类字节输入流字节输出流字符输入流字符输出流
                                                                        节点流
抽象基类InputStreamOutputStreamReaderWriter
访问文件FileInputStreamFileOutputStreamFileReaderFileWriter
访问数组ByteArrayInputStreamByteArrayOutputStreamCharArrayReaderCharArrayWriter
访问管道PipedInputStreamPipedOutputStreamPipedReaderPipedWriter
访问字符串StringReaderStringWriter
                                                                               处理流
缓冲流BufferedInputStreamBufferedOutputStreamBufferedReaderBufferedWriter
转换流InputStreamReaderOutputStreamWriter
对象流ObjectInputStreamObjectOutputStream
抽象基类FilterInputStreamFilterOutputStreamFilterReaderFilterWriter
打印流PrintStreamPrintWriter
推回输入流PushbackInputStreamPushbackReader
特殊流DataInputStreamDataOutputStream

 4.3节点流和处理流的区别与联系

(1)节点流是底层流/低级流,直接跟数据源相连;

(2)处理流(包装流)包装节点流,即可以消除不同节点流的实现差异,也可以提供更方便的方法来完成输入输出;

(3)处理流(包装流)对节点流进行包装,使用了修饰器设计模式,不会直接与数据源相连(模拟修饰器设计模式)。

4.4处理流的功能主要体现在以下两个方面

(1)性能的提高:主要以增加缓冲的方式来提高输入输出的效率。

(2)操作的便捷:处理流可能提供了一系列便捷的方法来一次输入输出大批量的数据,使用更加灵活方便。

4.5BufferedReader和BufferedWriter

4.5.1基本介绍

BufferedReader和BufferedWriter属于字符流,是按照字符来读取数据的;

关闭处理流时,只需关闭外层流即可。

4.5.2常用方法

(1)BufferedReader

①readLine()

按行读取文件,效率高

当返回null 时,表示文件读取完毕。

注意:: readLine 读取一行内容,但是没有换行

(2)BufferedWriter

①newLine()

插入一个和系统相关的换行。

4.5.2使用案例

(1)用BufferedReader读取文件

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;public class Test3 {public static void main(String[] args) {String path="D:\\javacode\\javacode\\IO_1\\BufRead.txt";String line=null;BufferedReader bufferedReader=null;try {bufferedReader=new BufferedReader(new FileReader(path));//包装流//1. bufferedReader.readLine() 是按行读取文件//2. 当返回null 时,表示文件读取完毕while((line=bufferedReader.readLine())!=null){System.out.println(line);}} catch (IOException e) {throw new RuntimeException(e);}finally {//关闭流, 这里注意,只需要关闭 BufferedReader ,因为底层会自动的去关闭节点流FileReader.try {if(bufferedReader!=null) {bufferedReader.close();}} catch (IOException e) {throw new RuntimeException(e);}}}
}

(2) 用BufferedWriter写入文件

import java.io.*;public class Test4 {public static void main(String[] args) {String path = "D:\\javacode\\javacode\\IO_1\\BufWriter.txt";//写入路径String str = "悟已往之不谏,知来者之可追!";//写入内容BufferedWriter bufferedWriter=null;try {bufferedWriter = new BufferedWriter(new FileWriter(path,true));//包装流bufferedWriter.write(str);bufferedWriter.newLine();//换行bufferedWriter.write(str);} catch (IOException e) {throw new RuntimeException(e);} finally {//关闭流, 这里注意,只需要关闭 BufferedWriter ,因为底层会自动的去关闭节点流FileWriter.try {if (bufferedWriter != null) {bufferedWriter.close();}} catch (IOException e) {throw new RuntimeException(e);}}}
}

(3)用BufferedReader和BufferedWriter拷贝文件 

import java.io.*;public class Copy_Buf {public static void main(String[] args) {String srcPath="D:\\javacode\\javacode\\IO_1\\happy.txt";//源路径String destPath="D:\\javacode\\javacode\\IO_1\\happy_buf.txt";//拷贝路径BufferedReader bufferedReader=null;BufferedWriter bufferedWriter=null;String dateLine=null;try{bufferedReader=new BufferedReader(new FileReader(srcPath));//创建包装流对象bufferedWriter=new BufferedWriter(new FileWriter(destPath));while((dateLine=bufferedReader.readLine())!=null){bufferedWriter.write(dateLine);//写入读取的每一行数据bufferedWriter.newLine();//换行}System.out.println("拷贝成功~");} catch (IOException e) {throw new RuntimeException(e);}finally {//关闭流, 这里注意,只需要关闭 BufferedWriter、BufferedReader ,因为底层会自动的去关闭节点流FileWriter、FileReader.try {if(bufferedReader!=null) {bufferedReader.close();}if(bufferedWriter!=null){bufferedWriter.close();}} catch (IOException e) {throw new RuntimeException(e);}}}
}

4.6 BufferedInputStream 和 BufferedOutputStream

4.6.1基本介绍

(1)BufferedInputStream是字节流,在创建BufferedInputStream对象时,会创建一个内部缓冲区数组。

(2)BufferedOutputStream是字节流,实现缓冲的输出流,可以将多个字节写入底层输出流中,而不必每次字节写入调用底层系统。

4.6.2使用案例

拷贝图片

import java.io.*;public class Copy_Stream {public static void main(String[] args) {String srcFilepath="D:\\javacode\\javacode\\IO_1\\mysql_1.jpg";//源路径String destFilepath="D:\\javacode\\javacode\\IO_1\\mysql_3.jpg";//拷贝路径BufferedInputStream bufferedInputStream=null;BufferedOutputStream bufferedOutputStream=null;byte[] buff = new byte[1024];//用于存放读取到的数据int readLen = 0;//实际读取到的字节数try {bufferedInputStream=new BufferedInputStream(new FileInputStream(srcFilepath));bufferedOutputStream=new BufferedOutputStream(new FileOutputStream(destFilepath));while((readLen=bufferedInputStream.read(buff))!=-1){//当返回-1 时,就表示文件读取完毕bufferedOutputStream.write(buff,0,readLen);//将读取到的数据写入指定路径}System.out.println("拷贝0k~");} catch (IOException e) {throw new RuntimeException(e);}finally {//关闭流, 这里注意,只需要关闭 BBufferedInputStream、BufferedOutputStream,// 因为底层会自动的去关闭节点流FileInputStream、FileOutputStreamtry {if(bufferedInputStream!=null) {bufferedInputStream.close();}if(bufferedOutputStream!=null){bufferedOutputStream.close();}} catch (IOException e) {throw new RuntimeException(e);}}}
}

 4.7对象流:ObjectInputStream 和 ObjectOutputStream

4.7.0序列化与反序列化

(1)序列化就是在保持数据时,保存数据的值和数据类型。

(2)反序列化就是再恢复数据时,恢复数据的值和数据类型。

(3)如果需要让某个对象支持序列化和反序列化机制,则必须让其所在的类是可序列化的。

为了让某个类是可序列化的,该类必须实现如下两个接口之一:

Serializable:只是一个标记接口,没有方法

②Externalizaable:该接口有方法需要实现,故一般实现Serializable接口。

4.7.1基本介绍

功能:提供了对基本类型或对象类型的序列化和反序列化的方法。

ObjectOutputStream 提供 序列化功能

ObjectInputStream 提供 反序列化功能

4.7.2使用案例

(1)用ObjectOutputStream进行数据的序列化

import java.io.*;public class Test1 {public static void main(String[] args) {Cat cat = new Cat("小黄", 5);//int year=2025;String path="D:\\javacode\\javacode\\IO_1\\cat.dat";//写入路径ObjectOutputStream objectInputStream=null;try {objectInputStream=new ObjectOutputStream(new FileOutputStream(path));objectInputStream.writeObject(cat);//写入一个Cat对象objectInputStream.writeInt(year);//写入一个int型整数} catch (IOException e) {throw new RuntimeException(e);}finally {//关闭流try {if (objectInputStream!=null) {objectInputStream.close();}} catch (IOException e) {throw new RuntimeException(e);}}}
}class Cat implements Serializable {private String name;private int age;public Cat(String name, int age) {this.name = name;this.age = age;}
}

(2) 用ObjectInputStream进行反序列化

import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;public class Test2 {public static void main(String[] args) {String path="D:\\javacode\\javacode\\IO_1\\cat.dat";//读取路径ObjectInputStream objectInputStream=null;try {objectInputStream=new ObjectInputStream(new FileInputStream(path));//注意读取顺序需以序列化顺序一致System.out.println(objectInputStream.readObject());System.out.println(objectInputStream.readInt());} catch (IOException | ClassNotFoundException e) {throw new RuntimeException(e);}finally {//关闭流try {if(objectInputStream!=null) {objectInputStream.close();}} catch (IOException e) {throw new RuntimeException(e);}}}
}

4.7.3注意事项

(1)读写顺序必须一致;

(2)要求实现序列化或反序列化对象,需要实现Serializable;

(3)序列化的类中建议添加SerialVersionUID,为了提高版本兼容性;

(4)序列化对象时,默认将里面所有属性都进行序列化,但除了static或transient修饰的对象。

(5)序列化对象时,要求里面属性的类型也需要实现序列化接口;

(6)序列化具备可继承性,也就是如果某类已经实现了序列化,则它的所有子类也默认实现了序列化。

4.8标准输入输出流

4.8.1基本介绍

介绍类型默认设备
System.in 标准输入InputStream键盘
System.out 标准输出PrintStream显示器

4.8.2使用案例

 就是平常使用的System.out.println(),将对象数据输出到显示器。

4.9转换流:InputStreamReader 和 OutputStreamWriter

4.9.1基本介绍

(1)InputStreamReader:Reader的子类,可以将InputStream(字节流)包装成Reader(字符流)。

(2)OutputStreamWriter:Writer的子类,实现将OutputStream(字节流)包装成Writer(字符流)。

(3)当处理纯文本数据时,使用字符流效率更高,并且可以有效解决中文问题,所以建议字节流转换成字符流。

(4)可以在使用时指定编码格式,例如:utf-8、gbk等。

4.9.2使用案例

import java.io.*;public class Test3 {public static void main(String[] args) {String path="D:\\javacode\\javacode\\IO_1\\happy.txt";BufferedReader bufferedReader=null;try {bufferedReader=new BufferedReader(new InputStreamReader(new FileInputStream(path)));//将InputStream转换为Read,再用包装流BufferedReader处理String data=null;while((data=bufferedReader.readLine())!=null){System.out.println(data);}} catch (IOException e) {throw new RuntimeException(e);}finally {try {if(bufferedReader!=null) {bufferedReader.close();}} catch (IOException e) {throw new RuntimeException(e);}}}
}

 4.10打印流:PrintStream和PrintWriter

4.10.1基本介绍

(1)打印流只有输出流,没有输入流;

(2)

4.10.2使用方式

(1)PrintWriter 使用方式

①PrintWriter(System.out);

标准输出,即显示器。

②new PrintWriter(new FileWriter(path));

指定输出数据的位置为path。

(2)PrintStream使用方式

在默认情况下,PrintStream 输出数据的位置是 标准输出,即显示器

4.10.3使用案例

import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;public class Test4 {public static void main(String[] args) {String path="D:\\javacode\\javacode\\IO_1\\out.txt";//打印流输出的位置PrintWriter printWriter=null;PrintStream printStream=System.out;// //在默认情况下,PrintStream 输出数据的位置是 标准输出,即显示器printStream.println("hello 2025");//如同System.out.println("hello 2025");try {printWriter=new PrintWriter(new FileWriter(path));//这样使用同字符流printWriter.print("hello");//将hello写到path路径} catch (IOException e) {throw new RuntimeException(e);}finally {printWriter.close();}}
}

五、Properties 类

5.1基本介绍

(1)专门用于读写配置文件的集合类。

 配置文件的格式:  键=值

(2)注意:键值对不需要有空格,值不需要用引号括起来,默认类型是String

5.2常用方法

(1)load:加载配置文件的键值对到Properties对象;

(2)list:将数据显示到指定设备;

(3)getProperty(key):根据键获取值;

(4)setProperty(key,value):设置键值对到Properties对象;

(5)store:将Properties中的键值对存储到配置文件,在IDEA中,保存信息到配置文件,如果有中文,会存储为Unicode码

结语

感谢您的耐心阅读,希望这篇博客能够为您带来新的视角和启发。如果您觉得内容有价值,不妨动动手指,给个赞👍,让更多的朋友看到。同时,点击关注🔔,不错过我们的每一次精彩分享。若想随时回顾这些知识点,别忘了收藏⭐,让知识触手可及。您的支持是我们前进的动力,期待与您在下一次分享中相遇!

路漫漫其修远兮,吾将上下而求索。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com