java中for eatch循环_java笔记

第一天

1.helloworld 程序笔记

pubulic 1.修饰符:控制范围

class  2.关键字在:java中有特殊意义的单词

hello world

3.标识符:凡是在java中可以自己起名字的都是标识符;

注意:只能有字母大小写,数字_和$,其中数字不能开头

2.java 中对数字大小写敏感

一句话结束用;

System.out.print()不换行 输出

System.out.println();换行输出

字符串需要加引号,数字不需要;

3.从控制台输入信息

Scanner input new Scanner(System.in);

input.next();

4.变量

1)变量的声明:数据类型+变量名=初始值;

2)数据类型:

1.基本数据类型:byte short int long float double char boolean

2.引用数据类型:String Scanner

3)注意:1.byte与byte相加是Int

2.浮点型 默认是double类型声明float 时要加上F

5.运算符

1)算数运算符:+ - * %

2)赋值运算符:= += -=  (++a是先运算后赋值;

a++是先赋值后运算;

a+=3相当于a=a+3;)

3)比较运算符:> < >= <=  (==结果是布尔类型)

4)逻辑运算符:|| && | &  (||有一个true就是true;

&&有个false就是false;

||  && 是短路运算; | &

都得运算;)

5)位运算符:  (计算机二进制计算移位 2<<3的答案是16)

6)三元运算符(也叫三目运算符):表达式?a:b  (a<3?8/4:8/2

如果a<3成立就执行第一个答案是2,如果a<3不成立执行第二个答案是4)

6.类型转换

1)自动类型转换:转换成最高位的数据类型

2)强制类型转换:int result=(int)23.45;

补充:产生一个随机数:Math.random()是个小数

7.if选择结构

1)if(){}

2)if(){}else

3)if(){}else if(){}else if(){}else{}

if嵌套使用

应用于多层判断

8.switch选择结构

1)switch

switch (表达式) {

case

常量 1:

语句;

break;

case

常量 2:

语句;

break;

default:

语句;

}

2)switch和if的区别

相同点:

都是用来处理多分支条件的结构

不同点:

switch选择结构

只能处理等值条件判断的情况,而且条件必须是整型变量或字符型变量

多重if选择结构

没有switch选择结构的限制,特别适合某个变量处于某个连续区间时的情况

package java_02;

第二天

1.循环结构

1)while(){}

2)do{}while()

3)while和do while 的区别:一个是先判断后执行一个是先执行后判断

//叠代器

Iterator it=null;

while(it.hasNext()){

System.out.println(it.next());

}

4)for(int i=0;i<100;i++){}  双重for循环的使用************

5)break和continue的区别:

使用场合

break可用于switch结构和循环结构中

continue只能用于循环结构中

作用(循环结构中)

break语句终止某个循环,程序跳转到循环块外的下一条语句。

continue跳出本次循环,进入下一次循环

6)成员变量和局部变量的区别

第三天

1、数组的定义:多个相同数据类型的数据的组合

2、声明数组:

a)声明数组的三种方式:1、int[] as={1,2,3};2、int[]ss=new

int[3];3、int[]dd=new int[]{1,2,3};

1)声明数组类型

2)创建对象并划分内存空间

3、数组的赋值

1)声明数组的同时赋值

2)动态的赋值

4、访问一个数组

1)通过数组的下标去访问。数组的下标从0开始

数组异常:arrayIndexOutOfBoundsException 如果数组下标超过了个数抛出异常

2)数组的遍历  for循环打印出来

5、数组的复制

1)传统的for循环

for (int j=0 ; j

e[j]=ff[j]

}

System.out.println(ee[j]);

2)使用Arrays.copyOf(原数组名,新数组名的长度)

int[]gg=Arrays.copyOf(ff,5);

for(int k=0;k

System.out.println(gg[k]);

}

6、数组的排序

1)双重for循环

for(int j=0;j

for(int k=j;k

if

(ff[j]>ff[k]){

int a=f[k];

ff[k]=ff[j];//这个方法是选择排序,冒泡排序自己去看看

ff[j]=a;

}

}

}

2)Arrays.sort(数组名);

Arrays.sort(ff);

第四天

二维数组:

声明数组的三种方式:int[][]astwo=new

int[][]{(1,2,3),(3,4,5),(4,5,6)}

;int [][]astwo=new int[4][5];

int astwo={(1,2,3),(3,4,5),(4,5,6)};

练习:

int [][]a=new int[4][];

for(int i=0;i<4;i++){

a[i]=new

int[2*i+1];

}

for (int i=0;i<4;i++){

for(int j=0;j<2*i+1;j++){

a[i][j]=2*i*j;

System.out.print(a[i][j]+"\t");

}

System.out.println();

}

方法和类的设计

1、定义属性:声明一个变量

声明方法:

修饰符+返回值类型+方法名(参数){方法体}

使用new关键字来创建这个对象

创建对象的步骤:类名 对象名=new 类名();

调用属性:对象名.属性

调用方法:对象名.方法名()

传参:方法传参在()定义参数 注意:有参数和无参数是两个方法

public void eat(String bone){

System.out.println("小狗爱吃"+bone);

}

String bone="肉";

dog.eat(bone);

有返回值的方法声明: public 返回值类型 方法名(){ return }用return关键字返回值

第五天:

引用类型如果我不重新创建对象,那这个对象就是原先的那个对象

public static void main(String[]args){

MathClass mc=new MathClass();

int x=5;

changeMath(mc);

System.out.println(mc.x);

}

public static void changeMath(MathClass mc){

mc.x=3;

}

//这个输出是3;

public static void main(String[]args){

MathClass mc=new MathClass();

int x=5;

changeMath(mc);

System.out.println(mc.x);

}

public static void changeMath(MathClass mc){

mc=new MathClass();

mc.x=3;

}

//这个输出是5

System.out.println(mc);

输出的是地址

字符串:

String s = "Hello World";

String s = new String();

String s = new String("Hello World");

1.String:类里面输出长度调用的是length方法,与数组 不同

,数组中输出长度调用的是length属性。

调用的时候点的时候没有括号的是属性,有括号的是方法

2.String是不可变的字符序列

String str=str1.replace('s','a');将S替换成A

System.out.println(str);输出的还是原数组

System.out.println(str1);除非给一个新的数组

3.缓冲池:定义字符串时,会在缓冲池里找有没有这个字符串,若有指向同一个地址

String str2="123";

String str3="123";

System.out.println(str2==str3);

输出的是true

String str4=new String("123");

String str5=new String("123");

System.out.println(str4==str5);

输出的是false

4.字符串的常用方法

1)equeals 比较字符串的值是否相等,==比较的是地址是否相等。

equalsIgnoreCase()方法 忽略大小写

toLowerCase()方法 全部转换成小写

toUpperCase( )方法 全部转换成大写

2)字符串的连接

A.concat(B):B字符串将被连接到A字符串后面

或者用+

3)字符串的提取

public int indexOf(int ch) 搜索第一个出现的字符ch

public int indexOf(String value)(或字符串value)

public int lastIndexOf(int ch) 搜索最后一个出现的字符ch

public int lastIndexOf(String value)(或字符串value)

//输出的是字符串的位置,如果没有找到就返回-1

//返回出现第一个匹配的位置, 如果没有找到字符或字符串,则返回-1

4)字符串的截取substring():[beginIndex,endIndex]包前不包后

public String substring(int index)提取从位置索引开始的字符串部分

public String substring(int beginindex, int

endindex)提取begingindex和endindex之间的字符串部分

public String trim()返回一个前后不含任何空格的调用字符串的副本

5)字符串的拆分split();

String str10="青-春-无-悔";

String[]str11=str10.split("-");

for(inti=0;i

System.out.println(str11[i]);

}

5.

String str="123456789";

//1.创建StringBuffer对象输入参数即可把String转成StringBuffer

StringBuffer sbf=new StringBuffer(str);

//2.StringBuffer和StringBuilder

1)共同点:都是可变的字符序列

2)区别:StringBuffer是线程安全,效率低。StringBuilder是线程不安全,效率高。

StringBuilder  sdf=new

StringBuilder(str);

sbf.replace(3,5,"dddd");把位置三到五的数换成dddd

System.out.println(sdf)

3.几个常用的方法:

1).append()拼接StringBuffer

2).toString()将StringBuffer转化为String

3).insert(int offer a, char c);在某个地方插入某个符号

4).reverse();倒序输出

5).delete(int begingIndex,int endIndex);

sbf.appand("abcd");//效果是字符串直接连载sbf后面

reverse()//反转

String str1=sbf.toString();//转换回String类型

for(int i=sbf.length-3;i<0;i=i-3){

sbf.insers(i,‘,');

insert的用法

String a="abcdefghijklmnopqrstuvwxyz";

Scanner input=new Scanner(System.in);

System.out.println("请输入用户名:");

String b=input.next();

StringBuffer stf=new StringBuffer(b);

for(int

i=b.length()-3;i>0;i=i-3){

stf.insert(i,

',');

System.out.println(stf);

第六天

System.out.println(new date().toLocaleString())

DateFormat df=new SimpleDateFormant("YYYY--MM--dd

hh:mm:ss")

javaoop

第一天

1.public 类名(){};

2.创建对象的时候就开始调用构造方法

//this关键字表示当前类的属性或方法

//注意:一个类中,如果没写构造方法,就默认了一个无参的构造方法,如果自己定义了一个构造方法无参的构造方法就没有了。

3.构造方法的的方法名必须跟类名一致

4.为了保护属性,使用private关键字  封装

//提供了一对public set get方法来实现对属性的赋值和访问

5.方法的重载

函数的重载就是同一个类中允许同时存在一个以上的同名函数,只要它们的参数个数或类型不同即可。

6.static

1)static可以用来修饰属性、方法和代码块

2)static修饰的属性和方法称为类属性(类变量)、类方法

3)不使用static修饰的属性和方法,属于单个对象,通常称为实例属性(变量属性)、实例方法

4)static修饰的变量和方法可以通过类名和对象名访问,而不用static修饰的变量和方法只能通过对象名访问

7.final

1)final可以用来修饰属性、方法和类

2)用final修饰的变量成为常量,其值固定不变

///Person.java

package oop;

public class Person {

//private封装

private int age;

String name;

int shengao;

//final关键字,其值固定不变

final int tizhong=50;

//static关键字

static String name1;

static int shengao1;

//创建对象构造方法

public Person(){}

public Person(String name){

//this关键字

this.name=name;

}

public Person(String name,int shengao){

this.name=name;

this.shengao=shengao;

}

//public set get方法来实现对属性的赋值和访问

public void setAge(int age){

if(age>0){

this.age=age;

}

}

public int getAge(){

return age;

}

public void lei(){

System.out.println("我是谁");

}

public void lei(String name){

System.out.println("我的名字是:"+name);

}

public String TIZHON(){

return "我的体重是:"+tizhong;

}

public String toString(){

return "我的名字是:"+name+"\t"+"我的身高是:"+shengao;

}

//static关键字

public static String tostring(){

return "我的名字是:"+name1+"\t"+"我的身高是:"+shengao1;

}

}

///Personceshi.java///

package oop;

public class Personceshi {

public static void main(String[]ags){

Person p=new Person();

p.setAge(20);

int age=p.getAge();

System.out.println(age);

p.lei();

p.lei("郑某某");

String h=p.toString();

System.out.println(h);

String w=p.TIZHON();

System.out.println(w+"*******");

Person g=new Person("zhu");

String i=g.toString();

System.out.println(i);

Person k=new Person("wang",80);

String m=k.toString();

System.out.println(m);

Person.name1="姗姗";

Person.shengao1=190;

System.out.println(Person.tostring());

}

}

//运行结果

我是谁

我的名字是:郑某某

我的名字是:null 我的身高是:0

我的体重是:50*******

我的名字是:zhu 我的身高是:0

我的名字是:wang 我的身高是:80

我的名字是:姗姗 我的身高是:190

//

第二天

1.使用extends关键字实现类与类之间的继承关系

注意:子类继承父类所有成员变量和成员方法,但不继承父类的构造方法 但可以调用

1)基本语法:

class Animal{

int age;

boolean sex;

public void eat(){

System.out.println("Animal eat");

}

public void sleep(){

System.out.println("sleep 8 hours");

}

}

class Dog extends Animal{

public void lookAfterHouse(){

System.out.println("look after house");

}

}

2)类继承语法规则:

修饰符 CLASS 子类名称

3)一个子类只能继承一个父类,一个父类可以多分支几个子类

4)

5)构造方法不能被继承

执行顺序:先执行父类的构造方法,再执行子类

重载(overloading)

2.方法的(重写、覆盖)

1)定义:在子类中根据需要对父类中继承来的方法惊醒改造-覆盖的方法(方法的重置、重写overiding),在程序执行时,子类的方法将覆盖父类的方法。

2)语法:覆盖方法必须和被覆盖方法具有像同的方法名称、参数列表和返回值类型

3)注意:覆盖方法不能使用比被覆盖方法更严格的访问权限

//

package oop_02;

//1 . 使用extends 关键字实现类与类之间的继承关系

//2.  注意: 子类继承父类所有的成员变量和成员方法,但不继承父类的构造方法

但可以调用父类的构造方法

public class Student extends Person {

String school;

//1. 定义:

在子类中可以根据需要对从父类中继承来的方法进行改造—覆盖方法(方法的重置、重写(overiding)),

//在程序执行时,子类的方法将覆盖父类的方法。

重载(overloading)

//2. 语法: 覆盖方法必须和被覆盖方法具有相同的方法名称、参数列表和返回值类型。

//3. 注意: 覆盖方法不能使用比被覆盖方法更严格的访问权限。

public void run(){

System.out.println("学生跑操");

}

public void study(){

System.out.println("学生学习");

}

public void print(){

System.out.println(super.sex);

}

public Student (){

super("Tom",19);

System.out.println("student 构造方法");

}

}

//

3.

1)声明一个Animal类

2)声明一个dog类来继承Animal

4. 多态:

1)语法: 父类名 对象名=new 子类名

2)特点:一个引用类型变量可能指向(引用)多种不同类型的对象

5.编译时多态  运行时多态

1)编译时多态只能调用父类中的属性和方法,调用子类中的属性和方法报错

//一个引用类型变量如果声明为父亲的类型,但实际引用的是子类对象,那么该变量就不能在访问子类中添加类型的属性和方法

2)运行时多态调用的是实际类型中的属性或方法

注意:方法声明的形参类型为父类类型,可以使用子类的对象作为实参调用该方法

5.对象的类型转换

注意:从子类到父类的类型转换可以自动转换

从父类到子类的类型转换必须通过造型(强制类型转换)实现

无继承关系之间的引用类型间的转换是非法的

6.instanceof用于判断引用类型的实际类型是什么?

x instanceOf A 必须有继承关系

//

package oop_02;

public class TestDog {

public static void method(Animal animal){

}

public static void main(String[] args) {

Dog dog = new Dog();

//1. 语法  多态  : 父类名  对象名 = new 子类名()

//2. 特点: 一个引用类型变量可能指向(引用)多种不同类型的对象

Animal animal = new Dog();

method(animal);

animal.name = "蛇";

animal.run();

// 注意: 方法声明的形参类型为父类类型,可以使用子类的对象作为实参调用该方法

Dog dog1 = new Dog();

method(dog1);

//

//3 . 编译时多态  运行时多态

//1. 编译时多态 只能调用父类中的属性和方法

,调用子类中的属性和方法报错

//

(一个引用类型变量如果声明为父类的类型,但实际引用的是子类对象,那么该变量就不能再访问子类中添加的属性和方法)

//2. 运行时多态 调用的是实际类型中的属性或方法

int a =(int)2.3;

//4. 对象的类型转换

// 注意: 从子类到父类的类型转换可以自动进行

// 从父类到子类的类型转换必须通过造型(强制类型转换)实现

// 无继承关系的引用类型间的转换是非法的

Animal animal2 = new Dog();

Dog dog2 = (Dog)animal2;

// Cat cat2 = (Cat)animal2;

//instanceof 用于判断 引用类型的实际类型是什么? A instanceof B 必须是继承关系

System.out.println(animal2 instanceof Dog);

System.out.println(animal2 instanceof Cat);

if(animal2 instanceof Dog){

Dog dog3 = (Dog)animal2;

System.out.println("转成狗");

}else if(animal2 instanceof Cat){

Cat cat3 = (Cat)animal2;

System.out.println("转成猫");

}

}

}

第三天

static

final

abstract

1、抽象方法  abstract关键字用来表示抽象

有抽象方法的类必须是抽象类

具体说明:用abstract修饰的类叫做抽象类,用abstract修饰的方法叫做抽象方法

2、//注意点:含有抽象方法的的类必须是抽象类

3、抽象类不能被实例化:不能被NEW

4、抽象类中可以有普通方法

5、抽象类是用来被继承的,抽象类的子类必须重写父类的抽象方法,并提供方法体

6、不能用abstract修饰私有方法,构造方法,静态方法

interface

implements

接口:使用interface关键字,定义一个接口

接口是抽象方法和常量值的定义的集合

接口中所有方法默认public abstract

从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现

接口的特点:

用interfaca来定义

接口中的所有成员变量都默认是由 public abstract final修饰的

接口中的所有方法都默认是有public abstract修饰的,接口没有构造方法

一个类可以实现多个无关接口

多个无关的类可以实现同一个接口

实现接口的类中必须提供接口中所有方法的具体实现

与继承关系类似,接口是实现类之间存在多态性

接口也可以继承另一个接口,使用extends关键字.

实现接口的类中必须提供接口中所有方法的具体实现内容

多个无关的类可以实现同一个接口

一个类可以实现多个无关的接口

与继承关系类似,接口与实现之间存在多态性

如果实现接口的类中没有实现接口中的全部方法,必须将此类定义为抽象类

抽象和接口的区别

第一点. 接口是抽象类的变体,接口中所有的方法都是抽象的。而抽象类是声明方法的存在而不去实现它的类。

第二点. 接口可以多继承,抽象类不行

第三点. 接口定义方法,不能实现,而抽象类可以实现部分方法。

第四点. 接口中基本数据类型为static 而抽类象不是的。

理解内容:

1. 当你关注一个事物的本质的时候,用抽象类;当你关注一个操作的时候,用接口。

抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。

2. 抽象类的功能要远超过接口,但是,定义抽象类的代价高。

因为高级语言来说(从实际设计上来说也是)每个类只能继承一个类。

在这个类中,你必须继承或编写出其所有子类的所有共性。

虽然接口在功能上会弱化许多,但是它只是针对一个动作的描述。

而且你可以在一个类中同时实现多个接口。在设计阶段会降低难度的。

第四天

一、常见异常

1、java.lang.ArithmeticException算术异常

2、java.lang.NullPointerExcepetion:空指针异常

3、java.lang.ArrayIndexOutOfBoundsException:数组下标越界异常

4、java.lang.NumberFormatException:数字格式化异常

二、异常处理

1、抓取异常 try{

int i=10/0;

//下面的括号里面还可以写  ArithmeticException

}catch(Exception e){

e.printStackTrace();

}finally{

//无论是否有异常finally中的代码都会被执行

System.out.println("ccccc");

}

2、声明异常 通过throws关键字

注意:如果这个方法被调用,调用的方法也要有异常处理

3、手动抛出异常

public void test1(){

if (i!=0){

int j=10/i;

}else {

throws new Exception("除数不为零")

}

}

Exception异常层次结构的根类

ArithmeticException算术错误情形,如以下零作除数

ArraylndexOutOfBoundsException数组下标越界

NullPointerException尝试访问null对象成员

ClassNotFoundException不能加载所需的类

InputMismatchException欲得到数据类型与实际输入类型不匹配

IIIegalArgumentException方法接受到非法参数

ClassCastException对象强制类型转换出错

NumberFormatException数字格式转换异常,如果把“abc”转换成数字

package oop_04;

public class TestException {

public static void main(String[] args) throws Exception

{

//一. 抓取异常

//1. java.lang.ArithmeticException: 算术异常

//int i = 10/0;

System.out.println("ddd");

//2. java.lang.NullPointerException : 空指针异常

String name = null;

//System.out.println(name.equals("张三"));

//3. java.lang.ArrayIndexOutOfBoundsException: 数组下标越界异常

int[] as = {1,2,3};

//System.out.println(as[3]);

//4> java.lang.NumberFormatException:数字的格式化异常

String age="abc";

//int age1 = Integer.parseInt(age);

test1(1);

}

//二. 声明异常 通过throws关键字

// 注意: 如果这个方法被调用,调用的方法也要有异常处理

public void test() throws ClassNotFoundException{

Class.forName("ddd");

}

//三. 手动抛异常

public static void test1(int i) throws Exception{

if(i != 0){

int j = 10/i;

}else{

throw new Exception("除数不为零");

}

}

}

/

Collection接口存储一组不唯一,无序的对象

List接口存储一组不唯一,有序(插入顺序)的对象

Set接口存储一组唯一,无序的对象

boolean add(Object o)在列表的末尾顺序添加元素,其实索引位置从0开始

void add(intindex,Object

o)在指定的索引位置添加元素。索引位置必须介于0和列表中元素个数之间

int size()返回列表中的元素个数

Object get(int

index)返回指定索引位置处的元素。取出的元素是Object类型,使用前需要进行强制类型转换

boolean contains(Object o)判断列表中是否存在指定元素

boolean remove(Object o)从列表中删除元素

Object remove(int index)从列表中删除指定位置元素,起索引位置从0开始

/

package oop_04;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import org.junit.Test;

public class testConnection {

Dog dog1 = new Dog("欧欧",3);

Dog dog2 = new Dog("亚亚",4);

Dog dog3 = new Dog("菲菲",2);

Dog dog4 = new Dog("美美",1);

//创建集合

List dogs = new ArrayList();

//List

@Test

public void test(){

//添加信息  add()

dogs.add(dog1);

dogs.add(dog2);

dogs.add(dog3);

dogs.add(dog4);

System.out.println("共有:"+dogs.size()+"条狗");

//通过下标删除对象

dogs.remove(0);

System.out.println("共有:"+dogs.size()+"条狗");

//contains()判断是否包含特定对象

if(dogs.contains(dog1)){

System.out.println("有欧欧这条狗!");

}else{

System.out.println("没有欧欧这条狗!");

}

//使用for循环遍历打印

//iterator迭代器遍历集合

System.out.println("================");

Iterator it = dogs.iterator();

while(it.hasNext()){

Dog dog = it.next();

System.out.println(dog.name+"\t"+dog.age);

}

}

//Map

@Test

public void testMap(){

//创建Map集合

Map Cat = new HashMap();

//添加信息(通过key  value)

Cat.put("cat1", "1号猫");

Cat.put("cat2", "2号猫");

Cat.put("cat3", "3号猫");

Cat.put("cat4", "4号猫");

Cat.put("cat5", "5号猫");

System.out.println("共有: "+Cat.size()+"条猫!");

//通过key取出value值

String catName = (String) Cat.get("cat2");

System.out.println(catName);

//通过键值删除

Cat.remove("cat2");

System.out.println("共有: "+Cat.size()+"条猫");

//可以通过键或值 判断是否包含特定对象

if(Cat.containsValue("2号猫")){

System.out.println("包含CAT2");

}else{

System.out.println("不包含CAT2");

}

//获取键集  值集  键值集

System.out.println(Cat.keySet());

System.out.println(Cat.values());

System.out.println(Cat);

}

}

//

package oop_05;

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.io.OutputStream;

import java.io.Reader;

import java.io.Writer;

import org.junit.Test;

public class File {

//缓冲流字节输入输出流

@Test

public void testBufferInputStream() throws IOException{

//创建缓冲的字节输入流

InputStream inputStream = new

FileInputStream("file.txt");

BufferedInputStream bufferedInputStream = new

BufferedInputStream(inputStream);

//创建缓冲的字节输出流

OutputStream outputStream = new

FileOutputStream("d:\\file1.txt");

BufferedOutputStream bufferedOutputStream = new

BufferedOutputStream(outputStream);

byte[] buffer = new byte[1024*10];

int len = 0 ;

while((len = bufferedInputStream.read(buffer))!= -1){

for (int j = 0; j < buffer.length; j++) {

bufferedOutputStream.write(buffer[j]);

}

}

//关闭流资源

bufferedInputStream.close();

bufferedOutputStream.close();

}

//缓冲的字符输入输出流

@Test

public void testBufferReader() throws IOException{

//创建缓冲的字符输入流

Reader reader = new FileReader("file.txt");

BufferedReader bufferedReader = new

BufferedReader(reader);

//创建缓冲的字符输出流

Writer writer = new FileWriter("e:\\file1.txt");

BufferedWriter bufferedWriter = new

BufferedWriter(writer);

String str = null;

while((str = bufferedReader.readLine()) != null){

bufferedWriter.write(str);

bufferedWriter.write("\n");

}

bufferedReader.close();

bufferedWriter.close();

}

//转换流

@Test

public void testInputStreamReader() throws IOException{

InputStream inputStream = new

FileInputStream("file.txt");

//使用InputStreamReader()把字节流转成字符流

Reader reader = new InputStreamReader(inputStream);

//转成缓冲的字符输入流

BufferedReader bufferedReader = new

BufferedReader(reader);

char[] buffer = new char[1024*10];

int len=0;

while((len = bufferedReader.read(buffer)) != -1){

for(int i=0 ; i

System.out.print(buffer[i]);

}

}

//关闭流资源

bufferedReader.close();

}

//对象流(输出)

@Test

public void testObject() throws IOException{

//输出的位置

OutputStream out = new

FileOutputStream("e:\\Person.txt");

//创建对象输出流

ObjectOutputStream objectOutputStream = new

ObjectOutputStream(out);

//创建要输出的对象

Person person = new Person("李四",18);

//输出对象

objectOutputStream.writeObject(person);

objectOutputStream.close();

}

//对象流(输入)

@Test

public void testObject1() throws

Exception{

InputStream in = new FileInputStream("e:\\Person.txt");

ObjectInputStream objectInputStream = new

ObjectInputStream(in);

Object object = objectInputStream.readObject();

System.out.println(object);

objectInputStream.close();

}

}

-------------------------------moxie.java-----------------------------------

package javaIO;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import org.junit.Test;

public class moxie {

@Test

public void testFile(){

File file=new File("file.txt");

System.out.println(file.getName());

file.renameTo(new

File("e:\\file.txt"));//将file文件另存为到e盘

System.out.println(file.getAbsolutePath());

System.out.println(file.getPath());

boolean y=file.exists();

System.out.println(y);

}

@Test

public void testOutputStream() throws Exception{

OutputStream outputStream=new

FileOutputStream("file3.txt");

String context="fagfasgageqkgewngkewngqlmglka";

byte[]buffer=context.getBytes();

outputStream.write(buffer);

outputStream.close();

}

@Test

public void testInputStream() throws Exception{

InputStream inputstream=new

FileInputStream("file3.txt");

String context="222222";

byte[]buffer=new byte[1024*10];

int len=0;

while((len=inputstream.read(buffer))!=-1){

for(int i=0;i

System.out.println((char)buffer[i]);

}

}

}

}

---------------------------javaIO.java-----------------------------------------------

package javaIO;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.io.Reader;

import java.io.Writer;

import org.junit.Test;

public class javaIO {

@Test

public void testFile(){

File file=new File("file.txt");

System.out.println(file.getName());

file.renameTo(new File("d:\\file.txt"));

System.out.println(file.getAbsolutePath());

System.out.println(file.getPath());

boolean b=file.exists();

System.out.println(b);

}

@Test

public void testInputStream() throws IOException{

InputStream inputStream=new FileInputStream("file.txt");

byte[]buffer=new byte[1024*10];

int len=0;

while((len=inputStream.read(buffer))!=-1){

for(int i=0;i

System.out.println((char)buffer[i]);

}

}

inputStream.close();

}

@Test

public void testReader() throws IOException{

Reader reader=new FileReader("file.txt");

char[] buffer=new char[1024*10];

int len=0;

while((len=reader.read(buffer))!=-1){

for(int i=0;i

System.out.print(buffer[i]);

}

}

reader.close();

}

@Test

public void testOutputStream() throws IOException{

OutputStream outputStream=new

FileOutputStream("file1.txt");

String

context="html-javaoop-javascript-sql-sqlserver-oracle-mysql-jdbc-jsp";

byte[]buffer=context.getBytes();

outputStream.write(buffer);

outputStream.close();

}

@Test

public void testWriter() throws IOException{

Writer writer=new FileWriter("abcd.txt");

String

context="html-javaoop-javascript-sql-sqlserver-oracle-mysql-jdbc-jsp";

char[]buffer=context.toCharArray();

writer.write(buffer);

writer.close();

}

@Test

public void testCopy() throws IOException{

Reader reader = new FileReader("file.txt");

Writer writer = new FileWriter("file2.txt");

char[] buffer = new char[1024*10];

int len=0;

while((len = reader.read(buffer)) != -1){

for (int j = 0; j < len; j++) {

writer.write(buffer[j]);

}

}

reader.close();

writer.close();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值