响应式网站自助建站,wordpress小工具放入用户中心,aspcms 网站标签调用,前端后端目录 1.IO概述1.1流的分类 2.字符流2.1 案例 1.IO概述
IO#xff08;Input/Output#xff09;:输入和输出#xff0c;指的是某个设备或环境进行数据的输入或者输出。例如#xff1a;键盘的输入#xff0c;再比如显示器就是输出设备#xff0c;输出图像。 对于java来说输… 目录 1.IO概述1.1流的分类 2.字符流2.1 案例 1.IO概述
IOInput/Output:输入和输出指的是某个设备或环境进行数据的输入或者输出。例如键盘的输入再比如显示器就是输出设备输出图像。 对于java来说输入输出问题java将它抽象成流对象来解决。 以游戏程序为中心读取文件就是输入写入文件是输出。
1.1流的分类
IO流在java中从输入输出角度分类 1.输入流从数据源读取数据例如从文件、键盘等读取数据。 2.输出流将数据写入到目的地例如写入文件、屏幕等。 IO流在java中从数据的角度来分类 1.字符流文本我们能读的懂的都可以认为是字符流。比如文章java文件等等 2.字节流二进制的数据这种数据一般用文本打开我们读不懂。比如图片文件mp3文件等等。
2.字符流
文本我们能读的懂的都可以认为是字符流。比如文章java文件等等 字符流 1输出流以 “Writer” 结尾例如 FileWriter、BufferedWriter 等。 2)输入流以 “Reader” 结尾例如 FileReader、BufferedReader 等。
字符流的类的命名的规则 如果是输出流就以Writer结尾 如果是输入流就以Reader结尾
2.1 案例
使用字符流向一个文件输入helloworld。 分析步骤
创建文件对象指定文件路径和名称。创建输出流对象例如 FileWriter。将输出流指向指定的文件。使用输出流对象的 write() 方法写入数据。释放资源关闭输出流 public class IOTest {public static void main(String[] args) {// 创建文件File file new File(test.txt);Writer writer null;try {// 创建输出流对象writer new FileWriter(file);// 写入数据writer.write(HelloWorld);} catch (IOException e) {e.printStackTrace();} finally {// 关闭输出流if (writer ! null) {try {writer.close();} catch (IOException e) {e.printStackTrace();}}}}
}
如果想在已有文件内容的末尾添加数据可以使用 FileWriter 的构造方法并传入第二个参数 true表示追加模式。
public class IOTest4 {public static void main(String[] args) {Writer writer null;try {//IO流是需要关闭的如果不这样设计就会不能关闭资源//writer new FileWriter(test1.txt, true);writer new FileWriter(new File(test1.txt), true);writer.write(liangliang);} catch (IOException e) {e.printStackTrace();}finally {//判断writer不是空防止空指针异常if(writer ! null) {try {//在关闭前会做flush的事情writer.close();} catch (IOException e) {e.printStackTrace();}}}}
}换行 输出换行 把文本写入文件中\n代表换行 问题是不同的环境下换行的方式也不一样 Windows: \r\n Linux:\n Mac:\r
public class IOTest5 {public static void main(String[] args) {//创建一个文件File file new File(test.txt);Writer writer null;try {//IO流是需要关闭的如果不这样设计就会不能关闭资源writer new FileWriter(file);for (int i 0; i 100; i) {writer.write(HelloWorld\r\n);//每次写入10个helloworld的时候做一次flushif(i % 10 0){writer.flush();}}} catch (IOException e) {e.printStackTrace();}finally {//判断writer不是空防止空指针异常if(writer ! null) {try {//在关闭前会做flush的事情writer.close();} catch (IOException e) {e.printStackTrace();}}}}
}Writer的五种写入的方法
除了 write() 方法之外Writer 还提供了其他几种写入方法
write(char[] cbuf): 将字符数组写入文件。write(char[] cbuf, int off, int len): 将字符数组的一部分写入文件。write(int c): 将一个字符写入文件。write(String str): 将字符串写入文件。write(String str, int off, int len): 将字符串的一部分写入文件。
public class IOTest6 {public static void main(String[] args) {//创建一个文件File file new File(test.txt);Writer writer null;try {writer new FileWriter(file);//定义一个数组char[] c {a,b,p,b,p};/*writer.write(c);//把数组中的一部分写入文件writer.write(c, 2, 2);writer.write(97);*/writer.write(helloworld, 2, 2);} catch (IOException e) {e.printStackTrace();}finally {if(writer ! null) {try {writer.close();} catch (IOException e) {e.printStackTrace();}}}}
}