`

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程序的执行是从`main`方法开始的,然后根据程序逻辑调用其他方法。 ##### 2.3.2 方法分类 方法可以分为实例方法和静态方法。 ##### 2.3.3 构造方法 构造方法用于初始化对象的状态,它的名字与类名相同,并...

    java夜未眠

    这份笔记涵盖了Java编程语言的各个方面,对于任何希望深入理解和掌握Java的人来说,都是一份极其宝贵的参考资料。 首先,我们来探讨Java的基础知识。Java是一种面向对象的编程语言,它的设计目标是“一次编写,到处...

    c&c++&java;试题大全(有面试题、笔试题、答案、面试心得等,多年心血的总结)

    这是一份综合性的编程试题集,包含了C、C++和Java三种语言的相关面试题、笔试题及其答案。这份资料是作者多年经验的结晶,旨在帮助学习者全面了解和掌握这三个编程领域的核心概念、语法、算法以及编程技巧。 **...

    java扰码器

    Java扰码器是一种工具,主要用于保护Java应用程序的源代码,防止未经授权的反编译和篡改。在软件开发中,源代码是程序员的心血结晶,包含了许多设计思想和商业秘密。因此,对于发布到公共环境的Java应用,尤其是商业...

    Zelix KlassMaster 12 JAVA 加密利器

    总的来说,Zelix KlassMaster 12是JAVA开发者在代码安全方面的得力助手,它通过混淆和加密技术,为JAVA应用程序构建了一道坚固的防护屏障,有效地保护了开发者的心血不被轻易侵犯。通过深入理解和使用ZKM 12.0.1,...

    java推箱2.0源代码

    对于学习Java编程、游戏开发或者想要了解推箱游戏工作原理的人来说,这份源代码是一份宝贵的资源。接下来,我们将深入探讨其中涉及的关键知识点。 1. **Java编程基础**:源代码是用Java语言编写的,因此首先需要...

    java代码混淆工具

    在Java中,混淆主要是针对字节码(.class文件)进行操作,因为Java程序最终会被编译成字节码,并在JVM上运行。混淆后的代码虽然不影响程序的功能执行,但使得反编译后的结果变得极其复杂,极大地增加了逆向工程的...

    java初学者笔记宝典(经典)

    这些是Java编程的基础,对于构建任何Java应用都是必不可少的。 4. **XML**:XML(可扩展标记语言)用于存储和传输数据,常用于Web服务和配置文件。了解XML的语法、解析和创建XML文档是Java开发者的必备技能。 5. *...

    weiqi.rar_java围棋代码_weiqi

    【围棋与Java编程】 在IT领域,围棋是一种极具策略性的二人对弈游戏,它与编程的结合为开发者提供了丰富的挑战和学习机会。本资源“weiqi.rar”包含了一个使用Java语言编写的围棋应用程序,这使得程序员能够深入...

    初学Java编写的万年历

    【描述】:“初学Java编写的万年历程序,花费了不少心血,大家可以参考下!” 这表明这个程序可能包含了作者深入理解Java核心概念的努力。在开发万年历程序时,开发者通常需要处理日历系统,包括公历、农历等,以及...

    源码网站大全 C语言源代码 C++语言源代码 java语言源代码

    3. Java语言源代码:Java以其“一次编写,到处运行”的特性,成为了企业级应用开发的首选语言。在源码网站上,可以找到各种Java应用的源码,包括桌面应用、Web应用、移动应用(Android)以及大数据处理和云计算平台...

    java经典源代码6

    在Java编程领域,源代码是开发者的心血结晶,它们展示了程序设计的思想和实现方式。"java经典源代码6"这个压缩包聚焦于游戏开发,包含了华容道和拼图等经典小游戏的源代码,这些都是Java程序员提升技能和理解游戏...

    JBuilder固定资产管理系统java项目源码.zip

    在IT领域,尤其是软件开发中,源码是程序员的心血结晶,是程序运行的基础。本项目“JBuilder固定资产管理系统”是一款基于Java语言设计的系统,旨在实现对固定资产的有效管理和追踪。通过深入分析其源码,我们可以...

    java web开发文档集中营

    【描述】"这是我最近花了很大的力气搜集来的希望可以帮到你"表明这个压缩包包含的资料是经过精心整理的,包含了作者对Java Web开发深入研究的心血结晶,目的是为了帮助读者节省寻找资源的时间,快速获取必要的学习和...

    SCJP5.0全套资料(个人心血笔记&2套题库)

    SCJP(Sun Certified Java Programmer)5.0是Java编程领域的一个重要认证,它验证了开发者对Java SE 5.0平台的基本理解与编程能力。这个认证对于那些希望深入理解Java语言特性和准备进入IT行业的专业人士来说,是...

    calculator_java.zip_Java GUI计算器_sin函数 java

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

    Java字节码加密工具

    Java字节码加密工具是一种用于保护Java应用程序源代码安全的工具。在软件开发过程中,源代码是开发者的心血结晶,包含了许多重要的商业逻辑和技术细节。然而,Java的字节码(.class文件)虽然相对于源代码(.java...

    商业编程-源码-调皮的老鼠 鼠标控制程序源代码.zip

    在IT行业中,编程是一项至关重要的技能,特别是在...通过这个“调皮的老鼠”鼠标控制程序,你将有机会实践和巩固你的编程技能,尤其是对操作系统交互和事件处理的理解,这对于任何IT专业人员来说都是一项宝贵的经验。

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

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

Global site tag (gtag.js) - Google Analytics