实现小写字母转为大写字母:
import java.io.*;
import java.math.*;
import java.text.*;
import java.util.*;
public class testClass {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub1
//本次将通过内存操作流实现转换,先将数据保存在内存流里面,在从里面取出来每一个数据
String str = "kingone is a engineer!";
//将所有要读取的数据设置到内存输入流中,本次李勇向上转型为InputStream类实例化
InputStream input = new ByteArrayInputStream(str.getBytes());
//为了能够将所有的内存流数据取出,可以使用ByteArrayOutputStream
OutputStream output = new ByteArrayOutputStream();
int temp = 0;
//经过此次循环,所有的数据都将保存在内存输入流对象中
while((temp = input.read())!= -1) {
output.write(Character.toUpperCase(temp));
}
System.out.println(output);
input.close();
output.close();
}
}
实现文件的合并读取:
import java.io.*;
import java.math.*;
import java.text.*;
import java.util.*;
public class testClass {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub1
File fileA = new File("d:" + File.separator + "demo" + File.separator + "king1.txt");
File fileB = new File("d:" + File.separator + "demo" + File.separator + "king2.txt");
if(!fileA.exists()) {
String str1 = "kingone 95 is";
Writer out = new FileWriter(fileA);
out.write(str1);
out.close();
}
if(!fileB.exists()) {
String str2 = " a engineer!";
Writer out = new FileWriter(fileB);
out.write(str2);
out.close();
}
InputStream inputA = new FileInputStream(fileA);
InputStream inputB = new FileInputStream(fileB);
ByteArrayOutputStream output = new ByteArrayOutputStream();
int temp = 0;
while((temp = inputA.read()) != -1) {
output.write(temp); //将数据保存到输出流
}
while((temp = inputB.read()) != -1) {
output.write(temp);
}
//现在所有的内容都保存到内存输入流里面,所有的内容变为字节数组取出
byte data[] = output.toByteArray();
output.close(); //关闭输出流
inputA.close();
inputB.close();
System.out.println(new String(data)); //字节转换为字符串输出
}
}
定义打印流工具类:
import java.io.*;
import java.math.*;
import java.text.*;
import java.util.*;
class PrintUtil{
private OutputStream output;
public PrintUtil(OutputStream output) {
this.output = output;
}
public void print(int x) { //输出int类型
this.print(String.valueOf(x)); //调用文本字符串的输出方法
}
public void print(String x) { // 采用OutputStream类中定义的方法,将字符串转变为字节数组后输出
try {
this.output.write(x.getBytes());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void print(double x) { //输出double类型的数据类型
this.print(String.valueOf(x));
}
public void println(int x) { //输出数据后换行
this.println(String.valueOf(x));
}
public void println(String x) {
this.print(x.concat("\n"));
}
public void println(double x) {
this.print(String.valueOf(x));
}
public void close() {
try {
this.output.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public class testClass {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub1
PrintUtil pu = new PrintUtil(new FileOutputStream(new File(
"d:" + File.separator + "test.txt")));
pu.print("kingone95");
pu.println(" is a engineer!");
pu.println(1+1);
pu.println(1.1+1.1);
pu.close();
}
}
使用PrintStream类实现输出:
import java.io.*;
import java.math.*;
import java.text.*;
import java.util.*;
public class testClass {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub1
// 实例化PrintStream类对象,本次利用FileOutputStream实例化类PrintStream类
PrintStream pu = new PrintStream(new FileOutputStream(
new File("d:" + File.separator + "demo" + File.separator + "king.txt")));
pu.print("kingone95");
pu.println(" is an engineer!!");
pu.println(1+1);
pu.println(1.1+1.1);
pu.close();
}
}
格式化输出:
import java.io.*;
import java.math.*;
import java.text.*;
import java.util.*;
public class testClass {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub1
// 实例化PrintStream类对象,本次利用FileOutputStream实例化类PrintStream类
PrintStream pu = new PrintStream(new FileOutputStream(new File(
"d:"+File.separator + "demo" + File.separator+ "king.txt")));
String name = "kingone95";
int age = 19;
double score = 99.99988;
pu.printf("姓名: %s, 年龄: %d , 成绩:%5.2f", name ,age,score );
}
}
格式化字符串:
import java.io.*;
import java.math.*;
import java.text.*;
import java.util.*;
public class testClass {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub1
// 实例化PrintStream类对象,本次利用FileOutputStream实例化类PrintStream类
String name = "kingone95";
int age = 23;
double score = 99.9999888;
String str = String.format("姓名: %s, 年龄: %d, 分数: %5.2f", name,age,score);
System.out.println(str);
}
}
System类对IO的支持
错误输出:
import java.io.*;
import java.math.*;
import java.text.*;
import java.util.*;
public class testClass {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub1
// 实例化PrintStream类对象,本次利用FileOutputStream实例化类PrintStream类
try{
Integer.parseInt("abc");
} catch(Exception e) {
System.err.println(e);
}
}
}
利用OutputStream实现屏幕输出:
import java.io.*;
import java.math.*;
import java.text.*;
import java.util.*;
public class testClass {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub1
OutputStream out = System.out; //OutputStream 实际就位屏幕输出
out.write("kingone95".getBytes()); //String.getBytes()返回的是字符串的字节数组
}
}
消费型函数式接口与方法引用:
import java.io.*;
import java.math.*;
import java.text.*;
import java.util.*;
import java.util.function.Consumer;
public class testClass {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub1
Consumer<String> con = System.out::println; //方法的引用
con.accept("kingone is a man!");
}
}
实现键盘的数据输入:
import java.io.*;
import java.math.*;
import java.text.*;
import java.util.*;
import java.util.function.Consumer;
public class testClass {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub1
InputStream input = System.in; //System.in为InputStream的实例
byte data[] = new byte[1024];
System.out.println("请输入数据:");
int len = input.read(data); //读入数据并返回长度
System.out.println("输入数据为: " + new String(data,0,len));
}
}
改进输入操作设计:
import java.io.*;
import java.math.*;
import java.text.*;
import java.util.*;
import java.util.function.Consumer;
public class testClass {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub1
InputStream input = System.in;
StringBuffer buf = new StringBuffer();
System.out.println("请输入数据:");
int temp = 0; //接收的数据长度
while((temp = input.read()) != -1) {
if(temp == '\n') {
break; //停止接收
}
buf.append((char)temp); //保存读取数据
}
System.out.println("输入数据为:" + buf);
}
}
判断输入内容:
import java.io.*;
import java.math.*;
import java.text.*;
import java.util.*;
import java.util.function.Consumer;
public class testClass {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub1
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
boolean flag = true;
while(flag) {
System.out.print("请输入年龄:");
String str = buf.readLine(); //读一行文本,以换行结束
if(str.matches("\\d{1,3}")) {
System.out.println("年龄是: " + Integer.parseInt(str));//parseInt()解析一个字符串返回一个整数
flag = false;
} else {
System.out.println("输入有误,应该有年龄组成!!");
}
}
}
}
读取文件:
import java.io.*;
import java.math.*;
import java.text.*;
import java.util.*;
import java.util.function.Consumer;
public class testClass {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub1
File file = new File("d:" + File.separator + "demo" + File.separator+ "king.txt");
//使用文件输入流实例化BufferedReader类对象
BufferedReader buf = new BufferedReader(new FileReader(file));
String str =null;
while((str = buf.readLine()) != null) { //读取数据并判断是否存在
System.out.println(str);
}
buf.close();
}
}