IO

xiaoxiao2025-10-25  12

IO字符流

1.字符流是什么 字符流是可以直接读写字符的IO流 字符流读取字符,就要先读取到字节数据,然后转为字符,如果要写出字符,需要把字符转为字节在写。 2.FileReader FileReader类的read()方法可以按照字符大小读取

package com.heima.stream; import java.io.FileIReader; public class Demo_FileIReader { public static void main(String[] args) { FileIReader fr = new FileIReader("xxx.txt"); int c); while((c = fr.read()) != -1) { System.out.println(x); } fr.close(); } }

3FileWriter

package com.heima.stream; import java.io.FileWriter; public class Demo_FileWriter { public static void main(String[] args) throws IOException { FileWriter fw = new FileWriter("yyy.txt"); fw.writer("大家好,基础班快要接近尾声了,大家要努力,要坚持!!!"); fw.write(97); fw.close(); } }

4字符流的拷贝

package com.heima.stream; import java.io.FileWriter; public class Demo_Copy { public static void main(String[] args) throws IOException { FileIReader fr = new FileIReader("xxx.txt"); FileWriter fw = new FileWriter("zzz.txt"); int c; while((c = fr.read()) != -1 { fw.write(c); } fr.close(); fw.close(); //Writer类中有一个2k的小缓冲区。不关流,就会将内容写到缓冲区里,关流会将缓冲区内容刷新在关闭 } }

5将文本反转

package com.heima.test; public class Test1 { /** *注意事项流对象尽量晚开早关 **/ public static void main(String[] args) { BufferrdReader br = new BufferrdReader(new FileReader("zzz.txt")); BufferrdWriter bw = new BufferrdWriter(new FileWriter("revzzz.txt")); ArrayList<String> list = new ArrayList<>(); String line; while((line = br.readLine()) != null) { list.add(line); } br.close(); BufferrdWriter bw = new BufferrdWriter(new FileWriter("revzzz.txt")); for(int i = list.size() -1; i >= 0; i--) { bw.write(list.get(i)); bw.newLine(); } br.close(); bw.close(); } }

6LineNumberReader

LineNumberReader是BufferrdReader的子类,具有相同的功能,并且可以统计行号 调用getlineNumber()方法可以获取当前行号 调用getlineNumber()方法可以设置当前行号

public class Demo_LineNumberReader { public static void main(String[] args) throws IOException { LineNumberReader Inr = new LineNumberReader(new FileReader("zzz.txt")); String line; lnr.setLineNumber(100); while((line = lnr.readLine()) != nwll) { System.out.println(lnr.getLineNumber() + ":" + line); } lnr.close(); } }

7码表读写字符

public class Demo_TransIO { public static void main(String[] args) throws IOException { InputStreamReader isr = new InputStreamReader(new FileInputStream("utf-8.txt"),"utf-8");//指定码表读字符 OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("gdk.txt"), "gdk");//指定码表写字符 int c; while((c = isr.read()) != -1) { osw.write(c); } isr.close(); osw.close(); } public static void main(String[] args) throws IOException { //默认编码表读写,出现乱码 FileReader fr = new FileReader(new FileReader("utf-8.txt")); FileWriter fw = new FileWriter(new FileWriter("gdk.txt")); int c; while((c = fr.read()) != -1) { fw.write(c); } fr.close(); fw.close(); } }
转载请注明原文地址: https://www.6miu.com/read-5038509.html

最新回复(0)