第十周课程总结
实验
1、实验代码
import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class text { public static void main(String[] args) throws IOException { try { String str = "hello world"; String s = "f:"+File.separator+"text.txt"; File file = new File(s); FileOutputStream ops = new FileOutputStream(file); byte b[] = str.getBytes(); for(int i=0;i<b.length;i++) { if (i%2==0 && b[i]>='a' && b[i]<='z') { b[i]=(byte)(b[i]-32); } } ops.write(b); ops.close(); System.out.println("经过更改后的内容为:"+new String(b)); } catch (FileNotFoundException e) { e.printStackTrace(); } } }
2、运行结果截图
总结:这周作业的难度并不大,但还是继续努力。
学习总结
1、字节流
1)字节输出流:OutputStream
OutputStream类的常用方法
注:要想使用以上方法,必须使用子类实例化,此时使用FileOutputStream子类,此类的构造方法如下:
public FileOutputStream(File file) throws FileNotFoundException
2)追加新内容
public FileOutputStream(File file,boolean append) throws FileNotFoundException
注:在构造方法中,如果将append的值设置为true,则表示在文件的末尾追加内容,反之覆盖。
3)字节输入流:InputStream
InputStream类的常用方法
注:要想使用以上方法,必须使用子类实例化,此时使用FileInputStream子类,此类的构造方法如下:
public FileInputStream(File file) throws FileNotFoundException
2、字符流
1)字符输出流:Writer
Writer类的常用方法
注:要想使用以上方法,必须使用子类实例化,此时使用FileWriter子类,此类的构造方法如下:
public FileWriter(File file) throws IOException
2)使用FileWriter追加文件的内容
public FileWriter(File file,boolean append) throws IOException
注:在构造方法中,如果将append的值设置为true,则表示在文件的末尾追加内容,反之覆盖。
3)字符输入流:Reader
Reader类的常用方法
注:要想使用以上方法,必须使用子类实例化,此时使用FileReader子类,此类的构造方法如下:
public FileReader(File file) throws FileNotFoundException
3、字节流与字符流的区别
字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的。
字符流在操作的时候是使用到缓冲区的。
4、字节-字符转换流
在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类。
OutputStreamWriter:是Writer的子类,将输出的字符流变为字节流,即:将一个字符流的输出对象变为字节流输出对象。
InputStreamReader:是Reader的子类,将输入的字节流变为字符流,即:将一个字节流的输入对象变为字符流的输入对象。
5、内存操作流
1)字节内存流
a、内存字节输入流:ByteArrayInputStream
ByteArrayInputStream类的主要方法
b、内存字节输出流:ByteArrayOutputStream
ByteArrayOutputStream类的主要方法
6、管道流
管道流的主要作用是可以进行两个线程间的通讯,分为管道输出流(PipedOutputStream)、管道输入流(PipedInputStream),如果要想进行管道输出,则必须把输出流连在输入流之上,在PipedOutputStream类上有如下的一个方法用于连接管道:
public void connect(PipedInputStream snk) throws IOException
7、打印流
在整个IO包中,打印流是输出信息最方便的类,主要包含:
字节打印流:PrintStream
字符打印流:PrintWriter
打印流提供了非常方便的打印功能,可以打印任何的数据类型,例如:小数、整数、字符串等等。
PrintStream类的常用方法
8、使用打印流进行格式化
在JDK 1.5之后,JAVA又对PrintStream类进行了扩充,增加了格式化的输出方式,直接使用printf()方法就可以完成操作,但是在进行格式化输出的时候需要指定其输出的数据类型。
格式化输出
9、System对IO的支持
System表示系统类,实际上在java中System类也对IO给予了一定的支持。
System类的常量
10、输入、输出重定向
通过System类也可以改变System.in的输入流来源,以及System.out和System.err两个输出流的输出位置。
System类提供的重定向方法