JAVA输入输出流

 
public static void main(String param[]){}
此语句一般是 java application程序的开始。
 
所需包引入: import java.io.*;
字符设为 byte
如: byte buffer[]=new byte[80]; //申请byte类型的空间存储输入字符
System.out.println(“/n请输入5个字符。。。 ”); //提示输入
int bytes=System.in.read(buffer); //将键盘输入读进 buffer,要bytes类型
 
for(int i=0;i<5;i++)
    System.out.print(buffer[i]); //输出 buffer中的前五个字符的ASCII码
 
for(int i=0;i<5;i++)
    System.out.print((char)buffer[i]);//输出 buffer中的前五个字符
 
//用来检错,与 try配合使用,把所有要执行的语句都放入try{}内,后面跟着catch(){}
catch (Exception e) {
      String err=e.toString();
      System.out.println(err);
 
String本身是一个对象而不是基本类型。 String类型的变量名是对String类的引用。内存分为四块区域,堆,堆栈,数据段,代码段。String str1=”x”; String str2=”x”;这样初始化是把x放在数据段,而根据字符数据池机制,只会有一个“x”,而在堆栈里面分配两个str1,str2的两个引用是指向了同样的一个“x”,而用String str3=new String(“x”);这个“x”是直接分配到堆里,而引用str3分配到堆栈里。
 
键盘输入整数n1,n2,计算并显示n1*n2,如下例:
import java.io.*;
class JavaIO_02N {
   public static void main(String param[]) {
     String nn1="",nn2="";   //定义两个 String整型对象nn1,nn2
//定义一个 BufferedRead类型的distream,用于输入时使用。
BufferedReader distream = new BufferedReader(new InputStreamReader(System.in));
 
     try{
     System.out.println("键入第 1个整数:");  
         nn1=distream.readLine();        //进行输入,并把输入的数存入nn1中     
     System.out.println("键入第 2个整数:");
         nn2=distream.readLine();   
     }
     catch(IOException e){ System.out.println("键入错误!: "); }
      //将nn1,nn2都转变了int类型,以便进行乘法运算。Integer也是一个整型对象,Integer.parseint()就是把整型对象Integer转换成基本数据类型int(整型)。
     int n1=Integer.parseInt(nn1);
 int n2=Integer.parseInt(nn2);
     System.out.println(n1*n2);
   }   
}
 
如下两种“+”不同:
String str = "3";
int i = Integer.parseInt(str);
System.out.println(i+1);//输出4; 因是 整数相加

String str = "3";
System.out.println(str+1);//output 31; 当作 字符串连接
 
public static void main(String args[])解释:
它是java程序的入口,写在主类里面,因其要在类外进行调用main()操作,所以是public;因为系统开始执行一个程序前,并没有创建main()方法所在类的实例对象,它只能通过类名调用主方法main()作为程序入口,所以该方法为static;因主方法并没有返回值,所以为void;其中main是主方法名;String args[]或者String[] args表示给主方法传一个字符串数组,字符串名为args。且,这String args[], String[] args 基本类似。可一样使用。

文件读入并输出1:只能输出字符,而不能输出中文
//建立当前要打开的文件句柄 in
FileInputStream in = new FileInputStream(new File(“D:/eclipse/IO/test.txt”));
while(in.available()>0) // in.available() 返回文件的字节长度
{
System.out.print( (char)in.read());//输出 字符,in.read()一个字符一个字符的读取
// System.out.print( in.read());//输出 字符对应的ASCII码
}
 in.close(); //使用完后将文件关闭
 
 
文件读入并输出2:可输出中文
String s="" ; //定义一个String对象,应来暂存所读取的一行文字
建立当前要打开的文件句柄 in
BufferedReader in = new BufferedReader(new FileReader(“D:/eclipse/美酒 .txt”));
s = in.readLine(); //利用读取文件的句柄读取文档中的一行
System.out.println(s); //并输出这一行
in.close(); //关闭文件
print() 与println()的区别
print()方法在输出括号里指定的字符串后就结束操作,而不再添加回车,光标停留在字符串最后一个字符的右边,println()则是添加回车,光标停在下一行。
 
文件读入与输出3:读入整篇文章并输出
import java.io.*;
public class JavaIO_032 {
    public static void openDispFile(String fileName){//定义一个可外部调用的函数
    try{
        File file = new File(fileName);  //
        int fileSize = (int)file.length();
        int charsReaded = 0;
        FileReader in = new FileReader(file);//建立当前要打开的文件句柄
        char[] data = new char[fileSize]; //建立一个字符数组,用于存放
            //将文件读到 data:
            while(in.ready()) {
            charsReaded += in.read(data, charsReaded, fileSize - charsReaded);  
        }
        System.out.println("显示文件内容 :从开头显示到结尾");
     String s1=new String(data, 0, charsReaded);// 把纯字符数组转变为String类型
            System.out.println(s1); //String 类型可直接输出            
            System.out.println("显示文件内容 :40个字节");
            String s2=new String(data, 10, 50);
            System.out.println(s2);            
        //关闭文件
            in.close();
    }
    catch (IOException e){
          System.out.println(" 文件打开错误!"+fileName);
    }// 错误处理
    }
    public static void main(String p[]) {
       //openDispFile("c://000//test.txt");
       openDispFile("D:/eclipse/美酒 .txt"); //两种写路径的方法均可
    }
}
 
总结:在读文件中,有三种方式,建立文件句柄时,FileInputStream与FileReader格式类似,都是FileInputStream in = new FileInputStream (new File  (“test.txt”));
 
将字符串写入磁盘文件:
import java.io.*;
//按字节写
//用文件输出流 FileOutputStream
//将字符串写入磁盘当前目录文件 test.txt
//如磁盘无此文件,新建立;若有此文件,则删除已有内容
public class JavaIO_04
{
    public static void main(String[] args)
    {
        try
        {
            File aFile=new File("test.txt");    //指定文件名
            //建立输出流
            FileOutputStream out= new FileOutputStream(aFile);     
 
           byte[] b=new byte[1024];  
            String str="This is a test file 贵州大学 ";
            b=str.getBytes();   //进行 String到byte[]的转化
            out.write(b);       //写入文本内容, 写入文档应是byte类型
                       
        }
        catch (IOException e)
        {  
System.out.println(e.toString());
        }
    }
}
 
 
将文件在JAVA中进行压缩并写入磁盘
//package javaio;
import java.io.*;
import java.util.zip.*;
//
//将文件 JavaIO_05.java压缩为JavaIO_05.zip并保存到当前目录下
public class JavaIO_05
{
    public static void main(String[] args)
    {
        try
        {
            //建立输出文件流
            FileOutputStream fileOut=
                new FileOutputStream("JavaIO_05.zip");
            //建立冗余验证流
            CheckedOutputStream checkedOut=
                new CheckedOutputStream(fileOut,new CRC32());
            //建立 Zip流
            ZipOutputStream zipOut=
                new ZipOutputStream(
                    new BufferedOutputStream(checkedOut));
            //设置注释内容
            zipOut.setComment("This is a java zipping test file");
            //文件名
            String fileName="JavaIO_05.java";
            //读取被压速文件流
            BufferedReader in=
                new BufferedReader(new FileReader(fileName));
            //建立压缩实体
            zipOut.putNextEntry(new ZipEntry(fileName));
            int ch;
            //当被压缩文件没有结束时继续读写
            while ((ch=in.read())!=-1)
            {
                zipOut.write(ch);
            }
            //关闭文件流,释放资源
            in.close();
            zipOut.close();
        }
        catch (IOException e)
        {
            System.out.println(e.toString());
        }
    }
 
 
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值