javaoutin
‘壹’ java中的标准输入输出流in、out、err是不是只能从控件台,或向控制台输入输出啊
根据需要可以从不同的地方输入,也可以输出到不同的地方。
‘贰’ java system.out && in
System是JAVA中的类来自于java.lang.System
out和in是System下的类字段,注意是[类字段],该类(System)是不能被实例化的。
其中 in 叫做“标准”输入流。
out叫做“标准”输出流。
当然System类下还包含许多方法,具体可以看一下JAVA的API。
嘿嘿,小弟打了好半天呢,希望能够帮到您!~~~
‘叁’ Java中的outer和inner的用法
Java中的outer,基本上用于当嵌套for循环时,如果使用break,用于跳出循环体,以防止死循环。
Java中Inner Class可以在一个类中把逻辑意义相同的部分放在一起,便于管理。
Outer Class 的成员函数可以像访问其他类一样来访问Inner Class(来自thinking in java),除此之外,必须用OutClass.InnerClass的形式访问Inner Class(例如main函数)。
public class Parcel {
class Destination{
private String label;
public Destination(String whereTo){
this.label = whereTo;
}
String readLabel(){
return label;
}
}
public Destination to(String s){
return new Destination(s);
}
public void ship(String dest){
Destination d = to(dest);
System.out.println(d.readLabel());
}
public static void main(String[] args){
Parcel p = new Parcel();
p.ship("Beijing");
Parcel q = new Parcel();
Parcel.Destination d = q.to("ShangHai");
System.out.println(d.readLabel());
}
}
‘肆’ java中的out和in是已经连接好的或者说PrintStream和InputStream是连接好的类
这两个类是抽象类,连接好是什么意思?看看api吧
‘伍’ java里面outer、 inner是什么意思
outerinner分别指的是循环的外层内层,可以认为是一个名字吧,要跳出的时候可以直接用比如breakouter,跳出外层循环,也可以代表内部类和外部类:
packageFFtest2;
publicclassFFOuter{
privateStringfirst;
privateintsecond;
publicFFOuter(Stringl,intr){
first=l;
second=r;
}
publicStringaddStringInteger(Stringfirst,intsecond){
returnfirst+Integer.toString(second);
}
/**
*test1
*
*
*/
publicvoidoutterPrint(){
FFOuter.InnerDisplaytemp=this.newInnerDisplay("frog",20);
System.out.println("OuterclassusesInnerclassfield:"+temp.innerFirst+","+temp.innerSecond);
temp.print(first,second);
}
privateclassInnerDisplay{
privateStringinnerFirst;
privateintinnerSecond;
publicInnerDisplay(){
this("Somebody",0);
}
publicInnerDisplay(Strings,inti){
innerFirst=s;
innerSecond=i;
}
publicvoidprint(Stringf,ints){
System.out.println("Innerclass:first="+f+",second="+s);
}
/**
*test2
*
*/
publicvoidprint(){
System.out.println("Innerclassusesouterclass:first="+first+",second="+second);
}
/**
*test3
*.
*/
publicStringadd(Stringfirst,intsecond)
{
returnaddStringInteger(first,second);
}
}
publicstaticvoidmain(String[]args){
/**
*test4
*inmain(),callouttermethod
**/
FFOuteroutter=newFFOuter("zebra",25);
outter.outterPrint();
/**
*test5
*inmain(),callinnermethod
*/
InnerDisplayinnerDisplay=outter.newInnerDisplay();
innerDisplay.print();
System.out.println(innerDisplay.add("iphone",10));
}
}
输出结果
OuterclassusesInnerclassfield:frog,20
Innerclass:first=zebra,second=25
Innerclassusesouterclass:first=zebra,second=25
iphone10
‘陆’ java以下代码中,我用文件输出流和内存输出流同样输出output对象,为什么结果不一样
呃,时隔几年,不知道你解决问题没有。首先应该明白,System.out.println(OBJ)会自动调用OBJ.toString()方法。查阅官方文档表示,ByteArrayInputStream类中重写了toString( )方法,Converts the buffer's contents into a string decoding bytes using the platform's default character set.即 “使用平台的默认字符集将缓冲区的内容转换为字符串解码字节。
但是 FileOutputStream类中并未重写toString( ) 。使用的是从Object类中继承下来的。所以你能看到 obj@xxx 格式的输出。
‘柒’ Java如何调用内部类的方法
在其他类中创建内部类的对象时,必须要使用外部类的实例来创建。比如类B是类A的内部类,则语句A.B=new A.B()将是错误的。正确的方法是先创建一个类A的对象,比如A ma=new ma();然后再用这个对象来创建内部类的实例,比如A.B mab=ma.new B();这里要注意后面的语法ma.new B()。也可以把这两步合为一步,比如A.B mab=new A().new B();注意,这里使用了两个new运算符,如果只有一个将是错误的,比如A.B mab=new A().B();是错误的,new A().B()语句JAVA会理解为创建一个无名的引用,然后由这个引用调用类A中的B()函数。如果需要调用的构造函数不是默认的,则可以这样创建比如A.B mab=new A(2).new B();或者分为两步A ma=new A(2); A.B mab=ma.new B();
而且我也怕是不是会重新建个棋盘,那就不行了!
这个你可以放心,不会创建两个棋盘,下面举例验证
public class A2 extends JFrame {
public static void main(String[] args) {
A ma=new A(); //可以看到在这里并没有创建内部类,也就是说内部类中的bbb并没有输出
A.A1 ma1=ma.new A1(); //调用内部类的方法,当然内部类如果有带参数构造函数,则还应在内部类中加上参数。
ma1.f();
}}
class A{
A(){System.out.println("aaa");}
class A1{
A1(){System.out.println("bbb");}
public void f(){System.out.println("kkk");}}
}
‘捌’ java io流怎么理解in和out
读出和写入,记住这两个概念就不难。in就是写入,out就是读出,用反向思维去记忆。
‘玖’ java中的System.in是什么意思
读取标准输入设备数据。
‘拾’ JAVA中OutputStream out, InputStream in 其中out in怎么赋值
int len=-1;
byte[] bt = new byte[2048]; //可以根据实际情况调整,建议使用1024,即每次读1KB
while(len=(in.read(bt)) != -1) {
os.write(bt,0,len); //建议不要直接用os.write(bt)
}
os.flush();
in.close();
os.close();