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程序的执行是从`main`方法开始的,然后根据程序逻辑调用其他方法。 ##### 2.3.2 方法分类 方法可以分为实例方法和静态方法。 ##### 2.3.3 构造方法 构造方法用于初始化对象的状态,它的名字与类名相同,并...
这份笔记涵盖了Java编程语言的各个方面,对于任何希望深入理解和掌握Java的人来说,都是一份极其宝贵的参考资料。 首先,我们来探讨Java的基础知识。Java是一种面向对象的编程语言,它的设计目标是“一次编写,到处...
这是一份综合性的编程试题集,包含了C、C++和Java三种语言的相关面试题、笔试题及其答案。这份资料是作者多年经验的结晶,旨在帮助学习者全面了解和掌握这三个编程领域的核心概念、语法、算法以及编程技巧。 **...
Java扰码器是一种工具,主要用于保护Java应用程序的源代码,防止未经授权的反编译和篡改。在软件开发中,源代码是程序员的心血结晶,包含了许多设计思想和商业秘密。因此,对于发布到公共环境的Java应用,尤其是商业...
总的来说,Zelix KlassMaster 12是JAVA开发者在代码安全方面的得力助手,它通过混淆和加密技术,为JAVA应用程序构建了一道坚固的防护屏障,有效地保护了开发者的心血不被轻易侵犯。通过深入理解和使用ZKM 12.0.1,...
对于学习Java编程、游戏开发或者想要了解推箱游戏工作原理的人来说,这份源代码是一份宝贵的资源。接下来,我们将深入探讨其中涉及的关键知识点。 1. **Java编程基础**:源代码是用Java语言编写的,因此首先需要...
在Java中,混淆主要是针对字节码(.class文件)进行操作,因为Java程序最终会被编译成字节码,并在JVM上运行。混淆后的代码虽然不影响程序的功能执行,但使得反编译后的结果变得极其复杂,极大地增加了逆向工程的...
这些是Java编程的基础,对于构建任何Java应用都是必不可少的。 4. **XML**:XML(可扩展标记语言)用于存储和传输数据,常用于Web服务和配置文件。了解XML的语法、解析和创建XML文档是Java开发者的必备技能。 5. *...
【围棋与Java编程】 在IT领域,围棋是一种极具策略性的二人对弈游戏,它与编程的结合为开发者提供了丰富的挑战和学习机会。本资源“weiqi.rar”包含了一个使用Java语言编写的围棋应用程序,这使得程序员能够深入...
【描述】:“初学Java编写的万年历程序,花费了不少心血,大家可以参考下!” 这表明这个程序可能包含了作者深入理解Java核心概念的努力。在开发万年历程序时,开发者通常需要处理日历系统,包括公历、农历等,以及...
3. Java语言源代码:Java以其“一次编写,到处运行”的特性,成为了企业级应用开发的首选语言。在源码网站上,可以找到各种Java应用的源码,包括桌面应用、Web应用、移动应用(Android)以及大数据处理和云计算平台...
在Java编程领域,源代码是开发者的心血结晶,它们展示了程序设计的思想和实现方式。"java经典源代码6"这个压缩包聚焦于游戏开发,包含了华容道和拼图等经典小游戏的源代码,这些都是Java程序员提升技能和理解游戏...
在IT领域,尤其是软件开发中,源码是程序员的心血结晶,是程序运行的基础。本项目“JBuilder固定资产管理系统”是一款基于Java语言设计的系统,旨在实现对固定资产的有效管理和追踪。通过深入分析其源码,我们可以...
【描述】"这是我最近花了很大的力气搜集来的希望可以帮到你"表明这个压缩包包含的资料是经过精心整理的,包含了作者对Java Web开发深入研究的心血结晶,目的是为了帮助读者节省寻找资源的时间,快速获取必要的学习和...
SCJP(Sun Certified Java Programmer)5.0是Java编程领域的一个重要认证,它验证了开发者对Java SE 5.0平台的基本理解与编程能力。这个认证对于那些希望深入理解Java语言特性和准备进入IT行业的专业人士来说,是...
这是一个java写的计算器,除了加减乘除外还实现了许多的函数,比如sin,cos,求倒数,二十进制转换等,是我十多天的心血,程序非常长,也成功实现了设定的功能,有漂亮的用户界面,通过这个程序可以学到很多关于java ...
Java字节码加密工具是一种用于保护Java应用程序源代码安全的工具。在软件开发过程中,源代码是开发者的心血结晶,包含了许多重要的商业逻辑和技术细节。然而,Java的字节码(.class文件)虽然相对于源代码(.java...
在IT行业中,编程是一项至关重要的技能,特别是在...通过这个“调皮的老鼠”鼠标控制程序,你将有机会实践和巩固你的编程技能,尤其是对操作系统交互和事件处理的理解,这对于任何IT专业人员来说都是一项宝贵的经验。
这是一个心血来潮的小作品...... | | 身边的朋友都喜欢玩农场,圣诞节将近,见到朋友的心情改的是想种圣诞老人,于是就 | | 有了这个小玩意。希望大家快乐。初学java,把一些基本的东西,尽量都用上了。适合初学...