打印流:

有两个类:PrintStream,PrintWriter类,两个类的方法一致,区别在于构造器

PrintStream:构造方法:接收File类型,接收字符串文件名,接收字节输出流(OutputStream)

PringWriter:构造方法:接收File类型,接收字符串文件名,接收字节输出流(OutputStream),接收字符输出流(Writer)

为其他流添加功能,可以方便地打印各种数据值,不同的是:它永远不会抛出IO异常

方法:

package demo;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter; public class PrintWriterDemo {
public static void main(String[] args) throws IOException {
function1();
function2();
function3();
} public static void function1() throws FileNotFoundException {
File file = new File("d:\\1.txt");
PrintWriter pw = new PrintWriter(file);
pw.println(100);// 写入的不是d,而是100,原样打印
pw.write(100);// 写入的是d
pw.flush();
pw.close();
} public static void function2() throws FileNotFoundException {
FileOutputStream fos1 = new FileOutputStream("d:\\2.txt");
PrintWriter pw1 = new PrintWriter(fos1);
pw1.println("打印流");
pw1.flush();
pw1.close();
} public static void function3() throws IOException {
FileWriter fw1 = new FileWriter("d:\\4.txt");
PrintWriter pw1 = new PrintWriter(fw1);
pw1.println("打印流");
pw1.flush();
pw1.close();
}
}

打印流自动刷新:

package demo;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter; public class PrintWriterDemo {
public static void main(String[] args) throws IOException {
function1();
} public static void function1() throws FileNotFoundException {
FileOutputStream fos1 = new FileOutputStream("d:\\1.txt");
PrintWriter pw1 = new PrintWriter(fos1, true);
// 第二个参数是否自动书刷新,如果是,不需要写flush方法
pw1.println("I");
pw1.println("Love");
pw1.println("You");
pw1.close();
}
}

打印流复制文本文件:

package demo;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter; public class Copy {
public static void main(String[] args) throws IOException {
BufferedReader bfr1 = new BufferedReader(new FileReader("d:\\1.txt"));
PrintWriter pw1 = new PrintWriter(new FileWriter("d:\\2.txt"), true);
String line = null;
while ((line = bfr1.readLine()) != null) {
pw1.println(line);
}
pw1.close();
bfr1.close();
}
}

最后简单写下工具类,可以大幅度降低代码量:

apache的commons工具类:

官网下载,复制到当前工程下的新建lib文件夹,右键build path即可

几个功能强大的常用方法:

package demo;

import java.io.File;
import java.io.IOException; import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils; public class CommonsDemo {
public static void main(String[] args) throws IOException {
function1();//文件名操作
function2();//文件操作
}
public static void function1(){
String name = FilenameUtils.getExtension("a.java");
System.out.println(name);//输出:java String filename = FilenameUtils.getName("d:\\b.java");
System.out.println(filename);//输出:b.java boolean a = FilenameUtils.isExtension("c.java", "java");
System.out.println(a);//输出true,判断文件后缀的方法
} public static void function2() throws IOException{
//读取文本文件的内容
String s1 = FileUtils.readFileToString(new File("d:\\1.txt"));
System.out.println(s1); //写文本文件
FileUtils.writeStringToFile(new File("d:\\b.txt"), "java");
//这里就创建了一个文本文件,并写入字符串java //复制文件(不限于文本)
FileUtils.copyFile(new File("d:\\1.txt"), new File("d:\\11.txt")); //复制文件夹
FileUtils.copyDirectoryToDirectory(new File("f:\\new"), new File("d:\\new"));
}
}

Java学习笔记43(打印流、IO流工具类简单介绍)的更多相关文章

  1. 【java学习笔记】文件读写(IO流)

    1.字节流 FileInputStream.FileOutputStream ①FileInputStream import java.io.FileInputStream; public class ...

  2. Java学习笔记六(I/O流)

    1.介绍 在实际开发过程中经常会用到数据的输入/输出操作,本篇博客着重分析一下,java中经经常使用到的有关IO操作的类.而在java中能够将经常使用的流分为两个部分:字节流和字符流. 1.流的抽象基 ...

  3. java学习第21天(IO流的使用)

    IO流分类: A:流向 输入流 读取数据 输出流 写出数据 B:数据类型 字节流 字节输入流 字节输出流 字符流 字符输入流 字符输出流 注意: a:如果我们没有明确说明按照什么分,默认按照数据类型分 ...

  4. Java学习笔记43(Spring的jdbc模板)

    在之前的学习中,我们执行sql语句,需要频繁的开流,关流比较麻烦,为了更加的简化代码,我们使用Spring 的jdbc模板jdbcTemplate来简化我们的代码量:需要导入的包有: 我们在之前的dr ...

  5. Java学习笔记--字符串和文件IO

    1.Java中的字符串类和字符的表示 2.区分String,StringBuilder和StringBuffer 3.从命令行中给main方法传递参数 4.文件操作 1 Java中的字符串和字符 1. ...

  6. Java并发之Semaphore和Exchanger工具类简单介绍

    一.Semaphore介绍 Semaphore意思为信号量,是用来控制同时访问特定资源的线程数数量.它的本质上其实也是一个共享锁.Semaphore可以用于做流量控制,特别是公用资源有限的应用场景.例 ...

  7. JAVA学习第四十七课 — IO流(一):文件的读写

    输入流和输出流相对于内存 将外部设备的数据读取到内存中:输入 将内存中的数据写入外部设备中:输出 IO流经常使用基类 字节流的抽象基类:InputStream,OutputStream 字符的抽象基类 ...

  8. JAVA学习第五十七课 — IO流(十一)

    一.管道流 PipedInputStream 和 PipedOutPutStream 输入和输出能够直接进行连接.结合线程使用 管道流,顾名思义,写一个读一个.连成一个管子 API文档:管道输入流应该 ...

  9. JAVA学习第五十一课 — IO流(五)流的操作基本规律

    转换流: InputStreamReader:字节到字符的桥梁.解码 OutputStreamWriter:字符到字节的桥梁.编码 流的基本规律 1.明白源和汇 源:InputStream.Reade ...

随机推荐

  1. Nginx搭建

    Nginx nginx是一个开源的,支持高性能,高并发的www服务和代理服务软件. nginx因具有高并发(特别是静态资源),占用系统资源少等特性,且功能丰富而逐渐流行起来. nginx不但是一个优秀 ...

  2. 【Django】网页跳转的问题

    这两天有个比较奇怪了问题困扰着我,就是网页跳转之后页面没有变化,虽然url已经变了,但是页面还是原来的,只是表单数据清空了 就是http://127.0.0.1:8000/signup_signin/ ...

  3. 20175314 《Java程序设计》第三周学习总结

    20175314 <Java程序设计>第三周学习总结 教材学习内容总结 编程语言的发展事是从面向机器(汇编.机器)到面向过程(C)再到面向对象(Java) 成员变量: 1.成员变量定义在类 ...

  4. 【转】GT 的性能测试方案解析

    前言 本文将整理腾讯GT各个性能测试项的测试方法,目的是为了帮助移动性能专项测试同学快速过一遍腾讯GT各个性能数据是如何获取的.另外对腾讯GT还不了解或者不知道它能做什么的同学可以看看这篇文章:htt ...

  5. HDU-1160.FatMouse'sSpeed.(LIS变形 + 路径打印)

    本题大意:给定一定数量的数对,每个数保存着一只老鼠的质量和速度,让你求出一个最长序列,这个序列按照质量严格递增,速度严格递减排列,让你输出这个序列的最长长度,并且输出组成这个最长长度的序列的对应的老鼠 ...

  6. Linux LVM扩容和缩容

    将原硬盘上的LVM分区/dev/mapper/RHEL-Data由原来的60G扩展到80G Step1:将LVData扩容+20G,如下图: [root@esc data]# lvextend -L ...

  7. IMU

    (1)用IMU来进行预测 读入一个10/20帧的数据集,通过IMU来初步预测出位姿以及显示其路径. Christian Forster, Luca Carlone, Frank Dellaert, D ...

  8. ABP框架初始化数据(自定义)

    找到目录:AbpFramework.EntityFramework>Migrations>SeedData,这目录下创建类:DefaultDataCreator.cs using Syst ...

  9. PHP 实现单链表

    数据结构是计算机存储.组织数据的方式,结构不同那么数据的检索方式和效率都不一样, 常用的数据结构有  数组 .栈 .队列 .链表 .树.堆 今天讲下单链表,单链表是一种链式存取的数据结构, 跟顺序链表 ...

  10. Android开发之页面跳转传递list集合

    这篇随笔这里详细记录两个activity之间如何传递list集合中的数据. 1.首先要对javabean进行序列化处理,即实现Serializable. package com.anhua.bean; ...