JAVA语法问题

来源:百度知道 编辑:UC知道 时间:2024/06/10 18:27:24
import java.io.*;
public class Example2 {
public static void main(String args[]){
File f=new File("C:\\","Example2.txt");
try {
byte bytes[]=new byte[512];
FileInputStream fis=new FileInputStream(f); //创建文件字节输入流
int rs=0;
System.out.println("The content of Example2 is:");
while((rs=fis.read(bytes, 0, 512))>0){
//在循环中读取输入流的数据
String s=new String(bytes,0,rs);
System.out.println(s);
}
fis.close(); //关闭输入流
} catch (IOException e) {
e.printStackTrace();
}
}
}

import java.io.*;
public class Example3 {
public static void main(String args[]) {
int b;
File file=new File("C:\\","Example3.txt");
byte bytes[]=new byte[512];
System.out.println("请输入你想存入文本的内容:");
try {
if (!file.exists()) // 判断文件是否存在

你可以看下api啊,api上有很好的解释FileInputStream是文件以流的方式传进来传到一个文件fis中去,它有一种方法当然是read用来读里面的数据,这里面放的是一个数组的参数bytes主要是起到缓冲的作用,后面跟的数字猜也能猜到是干什么的~而read里面判断是否到达了文件的末尾是判断读出的数是否为-1所以有了这个的判断:
rs=fis.read(bytes, 0, 512))>0
你写的操作要在FileOutputStream中进行,里面的数组自然也是起到缓冲的作用,当然你如果问为什么要用缓冲,我只能回答你是速度的问题,你可以上网查查资料。。
FileOutputStream fos=new FileOutputStream(file,true);
这句的意思应该是输出流是file路径下的这个文件,后面的参数表示的应该是把你要加入到文本加到这个文件的末尾,也就是合并两个字串write这个方法也应该能猜到什么意思了:
就是把缓冲bytes中的某个范围内的文字放到文件中去。
那第三个方法能猜出来:就是生成一个string的对象,而这个对象的初值是数组0—rs的字符组成的
这些方法具体我没有测试过,但是应该差不了多少~~

rs=read(bytes,0,512)每次读 bytes 这么长的数据,从数组下标0开始读到512
fos.write(bytes,0,b)也是一样的 只不过是朝外写

String(byte[] bytes, int offset, int length)
构造一个新的 String,方法是使用指定的字符集解码字节的指定子数组。

就用简单通俗的话说一下咯:

read这方法是一般是从某个文件中读取出来到本应用程序来,让本程序可以读取信息
write:与上面相反,是把你的程序中的信息放到一个文件中保存起来
这两个方法之间,其实就是数据持久化与瞬间化(数据保存在内存中)之间的转换
new String(bytes,0,rs)这方法,根据不同的参数可以把其转换为字符串的形式
,起转换的作用以字符串的形式