10天轻松学习javase第6天上,学习Java io 和ASCII
基于字节操作的I/O接口:InputStream和OutputStream
基于字符操作的I/O接口:Writer和Reader
基于磁盘操作的I/O接口:File
基于网络操作的I/O接口:Socket(不在java.io包下)
数据流的基本概念
基本流:一组有序,有起点和终点的字节的数据序列。包括输入流和输出流。
输入流:程序从输入流读取数据源。数据源包括外界(键盘、文件、网络…),即是将数据源读入到程序的通信通道。
输出流:程序向输出流写入数据。将程序中的数据输出到外界(显示器、打印机、文件、网络…)的通信通道。
JavaIO的基本类位于java.io包下。
InputStream 表示输入流
OutputStream 表示输出流
FileInputStream 表示文件输入流
FileOutputStream 表示文件输出流
InputStream这个抽象类是表示输入字节流的所有类的超类。
需要定义InputStream子类的应用InputStream必须始终提供一种返回输入的下一个字节的方法。
BufferedInputStream , ByteArrayInputStream , DataInputStream , FilterInputStream , read() , OutputStream , PushbackInputStream
public static void main(String[] args) throws IOException{
//读取文件的字符输出ASCII码的值
InputStream input = new FileInputStream("src/readme.txt");
int n;
while ((n = input.read()) != -1) {
System.out.println(n);
}
}
ASCII码
目前计算机中用得最广泛的 字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。
public static void main(String[] args) throws IOException{
//监听键盘,数组字母的ASCII码
Scanner in = new Scanner(System.in);
String b = in.next();
for( int i=0;i< b.length();i++){
System.out.println( b.charAt(i)+" "+(byte) b.charAt(i));
}
}
输出所有字符及其对应的ASCII码值
public static void main(String[] args) throws IOException{
//输出字符及其对应的ASCII码值
// TODO Auto-generated method stub
for(int i=0;i<255;i++){
char a = (char) i;
System.out.println(a+" "+i);
}
}
小结:
第33~126号(共94个)是字符,
其中第48~57号为0~9十个阿拉伯数字;
65~90号为26个大写英文字母,
97~122号为26个小写英文字母,
其余为一些标点符号、运算符号等。
public static void main(String[] args) throws IOException {
FileReader file = null;
// 创建FileReader并指定要读取的readme.text文件内容
file = new FileReader("src/readme.txt");
System.out.println("src/readme.txt文件内容");
int n = 0;
while ((n = file.read()) != -1) {
System.out.println((char) n);
}
file.close();
}
public static void main(String[] args) throws IOException{
//创建一个FileWriter对象,该对象初始化的时候就要指定被操作的文件 该文件不存在就会新建一个文件
FileWriter file = null;
file = new FileWriter("src/readme.txt");
file.write("HelloWorld!");
//刷新缓存数据将数据写入文件
file.flush();
file.write("10天轻松学习Javase");
file.write("10天轻松学习Javase");
file.close();
System.out.println("操作完成,查看src/readme.txt 文件内容");
}
public static void main(String[] args) throws IOException {
//读取文件并写入到另一个文件里
System.out.println("start");
Reader in = new FileReader("src/readme.txt");
Writer out = new FileWriter("src/readme2.txt");
char [] arr = new char[100];
int n;
while((n = in.read(arr)) > 0){
out.write(arr,0,n);
}
in.close();
out.close();
System.out.println("end");
}