`

java编程操作心血3

阅读更多

Demo1

 

package pc3;

import java.io.*;

/*

本例用System.in.read(buffer)从键盘输入一行字符,存储在缓冲区buffer中,count保存实际

读入的字节个数,再以整数和字符两种方式输出buffer中的值。Read方法在java.io包中,

而且要抛出IOException异常。程序如下:

*/

public class Input1 {

public static void main(String[] args)throws IOException{

// TODO Auto-generated method stub

System.out.println("Input:");

byte buffer[]=new byte[512];

int count=System.in.read(buffer);

System.out.println("Output:");

for(int i=0;i<count;i++)

{

System.out.print(" "+buffer[i]);//ASCII之间有间隔

}

System.out.println();

for(int i=0;i<count;i++)

{

System.out.print((char)buffer[i]);//字符间没有间隔

}

}

 

}

输入:1空格2空格q空格回车

输出:

Output:

 49 32 50 32 113 32 13 10

1 2 q 

解析:1对应的ASCII码为49,空格对应的32,回车键代表转义字符\r,\n对应的ASCII为13 10

第二行输出字符,间隔代表空格,回车转义字符没有被显示出来

 

 

Demo2:System.in.read进一步理解

package pc3;

 

import java.io.IOException;

import java.io.InputStream;

 

public class Input3 {

 

/**

* @param args

*/

public static void input(InputStream in)

{

int i;

int count=0;

try

{

System.out.println("please input a sequence,use 'a'to break off");

while(true)

{

i=in.read();

if(i==97)

break;

if(i>=65&&i<=90)

count++;

}

System.out.println("大写字母数为"+count);

}

catch(IOException e)

{

System.err.println("发生异常:" + e);

           e.printStackTrace( );

 

}

}

public static void main(String[] args) {

// TODO 自动生成方法存根

       input(System.in);//System。in对应的输入流是键盘

}

 

}

 

结果:

please input a sequence,use 'a'to break off

A S d a

大写字母数为2

补充:

package pc1;

import java.io.IOException;

import java.io.OutputStream;

public class Write_Test {

 

public static void mb_write(OutputStream out)

   {

       String s = "输出流例程";

       byte[ ] b = s.getBytes( );

       try

       {

           out.write(b);

           out.flush( );

       }

       catch (IOException e)

       {

           System.err.println("发生异常:" + e);

           e.printStackTrace( );

       } // try-catch结构结束

   } // 方法mb_write结束

 

   public static void main(String args[ ])

   {

       mb_write(System.out);

   } // 方法main结束

} // 类J_Write结束

 

 

 

Demo3

package pc3;

import java.io.*;

/*本例以FileInputStream的read(buffer)方法,每次从源程序文件OpenFile.java中读取512个字节

 * ,存储在缓冲区buffer中,再将以buffer中的值构造的字符串new String(buffer)显示在屏幕上。程序如下:

 * */

public class OpenFile {

 

public static void main(String[] args) throws IOException{

// TODO Auto-generated method stub

try

{

FileInputStream rf=new FileInputStream("D:/Student.txt");

int n=512;

byte buffer[]=new byte[n];

while((rf.read(buffer,0,n)!=-1)&&n>0)//rf等同与前面的System.in,只不过一个是 文件,一个是键盘

{

System.out.print(new String(buffer));

}

System.out.println();

rf.close();

}

catch (IOException ioe)

{

System.out.println(ioe);

}

catch (Exception e)

{

System.out.println(e);

}

}

 

}

 

Demo4

 

package pc1;

/*

 缓冲区的出现是为了提高 流的操作效率而出现的

 所以在创建缓冲区之前必须要有流对象

 该缓冲区提供了一个跨平台的换行符

 */

import java.io.*;

public class BufferedWriteDemo {

 

public static void main(String[] args) throws IOException {

// TODO Auto-generated method stub

//创建一个字符写入流对象

FileWriter fw=new FileWriter("E:\\test.txt",true);

//继承 OutputStreamWriter(OutputStream out)

//FileWriter(File file,boolen y)

BufferedWriter bufw=new BufferedWriter(fw);//缓冲技术封装了数组

//BufferedWriter(Writer out) 

        //创建一个使用默认大小输出缓冲区的缓冲字符输出流。新的newline()方法

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

{

bufw.write("abce"+i); 

bufw.newLine();//

//只有用到缓冲区,就要记得刷新

bufw.flush();

}

bufw.close();//缓冲区的关闭就是被提高效率的流对象

System.out.println("finish");

}

 

}

 

在E:\\test.txt,写入

abce0

abce1

abce2

abce3

 

Demo6

采用字节流将一个文件的数据读出来,并且写入另一个文件里

package pc1;

 

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

 

public class Bytstest {

 

 

 

public static void main(String[] args) throws IOException{

// TODO Auto-generated method stub

FileInputStream in=null;

FileOutputStream out=null;

try

{

in=new FileInputStream("E:\\java_file\\origin.txt");

//FileInputStream(File file)构造函数

out=new FileOutputStream("E:\\java_file\\byteout.txt");

int c;

while((c=in.read())!=-1)

{

out.write(c);

}

}

catch(Exception e)

{

e.printStackTrace();

}

finally

{

if(in!=null)

{

in.close();

}

if(out!=null)

{

in.close();

}

}

}

 

}

/*尽管BytesTest能够顺利执行,可它并不完美。字节流一般用在原始的I/O里

 * (即操作字节数据的时候),而original.txt包含的确是一些字符数据,所以更好的处理方式应该是使用字符流

 * 。可为什么要先谈字节流呢??因为其他流都是建立在字节流之上的。*/

Demo7

/*字节流,相比于demo6有更高的效率*/

package pc1;

/*通过缓冲区来复制一个Java文件*/

import java.io.*;

public class CopyTextByBuf {

  public static void main(String args[])

  {

 BufferedReader bufr=null;

 BufferedWriter bufw=null;

 try

 {

 bufr=new BufferedReader(new FileReader("e:\\java_file\\origin1.txt"));

     bufw=new BufferedWriter(new FileWriter("e:\\java_file\\origin.txt")); 

     String line=null;

     while((line=bufr.readLine())!=null)

     {

     bufw.write(line);

     bufw.newLine();

     bufw.flush();

     }

 }

 catch(IOException e)

 

 {

 throw new RuntimeException("读写失败");

 

 }

 finally

 {

 try

 {

 if(bufr!=null)

 bufr.close();

 }

 catch(IOException e)

 

 {

 throw new RuntimeException("读取关闭失败");

 

 }

 try

 {

 if(bufw!=null)

 bufw.close();

 }

 catch(IOException e)

 

 {

 throw new RuntimeException("写入读取关闭失败");

 

 }

 }

  }

}

 

Demo8

/*

采用字节流将一个图片复制到另一个图片

*/

package pc1;

 

import java.io.*;

 

public class CopyPic {

 

public static void main(String[] args) {

// TODO Auto-generated method stub

FileOutputStream fos=null;

FileInputStream fis=null;

try

{

fos=new FileOutputStream("e:\\java_file\\2.jpg");

fis=new FileInputStream("e:\\java_file\\1.jpg");

byte buf[]=new byte[1024];

int len=0;

while((len=fis.read(buf))!=-1)

{

fos.write(buf,0,len);

}

System.out.println("sucess");

}

catch(IOException e)

{

throw new RuntimeException("读写失败");

}

finally

{

try

{

if(fos!=null)

fos.close();

}

catch(IOException e)

{

throw new RuntimeException("写入关闭失败");

}

try

{

if(fis!=null)

fis.close();

}

catch(IOException e)

{

throw new RuntimeException("读取关闭失败失败");

}

}

}

 

}

 

demo9

字节流的各种情况

/*字符流FileReader,FileWriter

 字节流 InputStream,OutputStream

 */

package pc1;

 

import java.io.*;

 

public class FileStream {

 

public static void main(String[] args) throws IOException {

readFile_1();

 

}

 

public static void writeFile() throws IOException {

FileOutputStream fos = new FileOutputStream("e:\\java_file\\1.txt");

fos.write("abcd".getBytes());

fos.close();

}

 

public static void readFile_1() throws IOException {

FileInputStream fis = new FileInputStream("e:\\java_file\\1.txt");

int ch = 0;

while ((ch = fis.read()) != -1) {

System.out.print((char) ch);

}

fis.close();

}

 

public static void readFile_2() throws IOException {

FileInputStream fis = new FileInputStream("e:\\java_file\\1.txt");

byte buf[] = new byte[1024];

int len = 0;

while ((len = fis.read(buf)) != -1)// 不断的装,一次性全部打印出来

{

System.out.println(new String(buf, 0, len));

}

fis.close();

}

 

public static void readFile_3() throws IOException {

FileInputStream fis = new FileInputStream("e:\\java_file\\1.txt");

int num = fis.available();

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

fis.close();

}

 

public static void readFile_4() throws IOException {

FileInputStream fis = new FileInputStream("e:\\java_file\\1.txt");

byte buf[] = new byte[fis.available()];// 定义一个缓冲区,不必在循环了,相比于2

fis.read(buf);

System.out.println(new String(buf));

fis.close();

}

}

 

分享到:
评论

相关推荐

    JAVA程序设计语言基础

    你不想学习现在最高级的程序高计语言吗,你知道它是什么吗?本人经过多年的心血总结出最强大的学习这门高级程序设计语言的教程---JAVA程序设计语言,希望你能喜欢!!!

    java jmf编程的笔记

    学啦半年java的我心血来潮编写播放器,但是对jmf完全不熟,于是上网找啦半天。都是前辈的心得,分享给友友们,希望对你们有帮助。

    java jmf编程

    学啦半年java的我心血来潮编写播放器,但是对jmf完全不熟,于是上网找啦半天。都是前辈的心得活总结什么的,分享给友友们,希望对你们有帮助。

    calculator_java.zip_Java GUI计算器_sin函数 java

    这是一个java写的计算器,除了加减乘除外还实现了许多的函数,比如sin,cos,求倒数,二十进制转换等,是我十多天的心血,程序非常长,也成功实现了设定的功能,有漂亮的用户界面,通过这个程序可以学到很多关于java ...

    java 做的俄罗斯方块

    该方块是本小组的杰作 融汇了java程序精华部分的,凝结了我们的大作业的心血

    java 小程序 圣诞贺卡(仿qq农场小游戏)

    这是一个心血来潮的小作品...... | | 身边的朋友都喜欢玩农场,圣诞节将近,见到朋友的心情改的是想种圣诞老人,于是就 | | 有了这个小玩意。希望大家快乐。初学java,把一些基本的东西,尽量都用上了。适合初学...

    初学Java编写的万年历

    初学Java编写的万年历程序,花费了不少心血,大家可以参考下!

    EfsFrame(java开发框架) v2.2 源代码.rar

    Efs框架从研发到时间,历时近10年,积累了大量实战软件工程专家、数学专家的心血不断完善而成,已应用的大大小小的项目几十个,从小项目的开发管理维护设计到大项目的负载均衡设计,Efs逐渐形成了一整套完整的基于B/...

    JAVA&JEE知识点汇总—真正自己的学习总结

    包括了Java基础知识、面向对象、IO流、线程、网络编程、JEE、servlet、JSP、Javascript、框架理解、ORM对象关系型数据库映射、hibernate、spring、事务、EJB、UML等技术的基本理解和总结,文档共66页!

    阿里 Java 开发手册多版本.7z

    内含阿里多个版本编程规范,编程规范是基础!项目未动,规范先行!包含了无数阿里人的心血和技术结晶,踩了无数的坑之后才有的这个规范。也可以在 Idea 插件中下载阿里编程规范的插件。

    java学习—租车系统

    在培训学校学习时做的一个小项目,加上了socket、C3P0连接池和swing界面。MD5加密、Excel批量添加什么的没来的及做,能力有限,项目时间不够用,...虽然做的不好看,但毕竟是自己的心血,希望能给需要的人一些启发。

    操作系统中的进程调度算法

    操作系统中的进程调度算法,包括时间片轮,优先数,先进先出~~~心血啊。

    培训资料利用SSH信息管理系统javaWEB源码代码

    为了高薪就业,我花了不少心血去参加培训,在培训中,也下了很大的功夫 ,学会了太多太多,就业之后才发现,会的东西还是太少, 真正的就业了,才发现,应该抓紧时间,多会写东西,然后追逐自己的利益, 得到自己的...

    myeclipse+jdk java银行系统

    非常不错的资源 myeclipse+jdk1.6 本人花费了不少心血完成的!采用ui-&gt;bo-&gt;dao分层架构,实现了数据库存储数据及使用文件系统保存数据,供初学者学习

    终极高手必备-阿里Java开发手册

    一本书可以改变一个人,一本书集成了无数人的心血。对于一个编程多年的老鸟,我想你需要这样一本书。

    Python学习 | 一个JAVA程序员两天的Python入门笔记

    人物:一个心血来潮学习Python的JAVA程序员 文章目录vlog正文入门基础注释算数运算符及优先级程序执行原理变量概念和定义方式变量的命名变量的输入和输出数据类型数值型非数值型列表元组列表与元组的互相转换字典...

    KgShop金刚网店系统 v3.0.2.rar

    采用linux,mysql,srutsEX,hibernate,ejb3等技术,Kghop第一版诞生于2010年,经过多年开发,Kgshop系统已拥有快速、稳定、支持大量并发访问等软件特性,是10万人在线的JAVA商城优秀解决方案。KgShop拥有良好的模板...

    eclipse +cdt+MinGW.pdf

    在用Eclipse编写Java应用程序时,感觉很爽,Eclipse不愧是强大的IDE,不冤枉IBM花看那么多钱和众多开源爱好者的努力(你们辛苦了!!谢谢!!!)。突发奇想,想玩玩Eclipse编写C++程序。 。。。。。。 在Windows下...

    AutoUpdater(新版自动升级组件)源码 v2.0

    工作两年居然没有在上面发布任何资源,前几天心血来潮把平时的练习的一个东西拿来重写了一下,现在把源码拿来给大家分享一下。

Global site tag (gtag.js) - Google Analytics