day18 IO 字节流和字符流&正常关闭 转换流 Scanner Files
来源:互联网 发布:网络巫师泰剧中字05 编辑:程序博客网 时间:2024/05/05 09:30
java.io.File类:表示了文件和目录
Windows和Unix中路径使用和路径分割 \和/ java中\表示转义,所以需要\\ 分隔符; :
java中使用常量来表示可以解决此问题 separator separatorChar 和 pathSeparator pathSeparatorChar : /
File构造方法
package file;import java.io.File;public class Demo1 {/** * @param args */public static void main(String[] args) {File f1 = new File("/User/luffy/123.txt");File f2 = new File("/User/luffy","123.txt");File f3 = new File("/User/luffy");new File(f3,"123.txt");}}
常用方式
package _01_File;import java.io.File;import java.io.IOException;public class Demo1 {public static void main(String[] args) throws Exception {File file = new File("test");System.out.println(file.exists());System.out.println(file.isDirectory());System.out.println(file.isFile());new File("test2.txt").createNewFile();new File("test/test2/test3").mkdirs();System.out.println(file.getName());//获取文件的相对路径System.out.println(file.getPath());//获取父目录 getParentFile()则返回的是File类型System.out.println(file.getParent());//获取绝对路径System.out.println(file.getAbsolutePath());//修改文件名称file.renameTo(new File("xxoo"));new File("delete.txt").delete();}}listFiles()
package _01_File;import java.io.File;public class ListFilesDemo {public static void main(String[] args) {File file = new File("D:/图");listfiles(file);}static void listfiles(File file){if(file.isFile()){System.out.println(file);}if(file.isDirectory()){File[] fs = file.listFiles();if(null == fs){return;}for (File file2 : fs) {//System.out.println(file2);listfiles(file2);}}}}
IO
表示输入/输出
java中的流分几种
1,从流向上考虑:输入/输出流
2,从流的单位上考虑:字节流,字符流
3,从流的功能上将:节点流/缓冲流
流的四大基类(抽象类)
文件输出流
package _02_IO;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;public class FileOutputStreamDemo {public static void main(String[] args) throws Exception {File file = new File("out.txt");FileOutputStream fos = new FileOutputStream(file);String data = "hello io";fos.write(data.getBytes());fos.close();}}
文件输入流
package _02_IO;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;public class FileInputStreamDemo {public static void main(String[] args) throws Exception {File file = new File("out.txt");FileInputStream fis = new FileInputStream(file);//读取一个数据字节//int f1 = fis.read();//System.out.println(f1);//读取全部byte[] buffer = new byte[1024];int len = -1;while((len=fis.read(buffer)) != -1){System.out.println(len);System.out.println(new String(buffer,0,len));}fis.close();}}使用字节流拷贝文件
package _02_IO;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;public class CopyFile {/** * @param args * @throws Exception */public static void main(String[] args) throws Exception {File in =new File("out.txt");FileInputStream fis = new FileInputStream(in);FileOutputStream fos =new FileOutputStream("in.txt");byte[] buffer = new byte[2];int len=-1;while((len=fis.read(buffer)) != -1){fos.write(buffer,0,len);}fos.close();fis.close();}}字符异常的处理
1.7以前
package _02_IO;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class CopyFileTry_Catch {/** * @param args */public static void main(String[] args) {FileInputStream fis = null;FileOutputStream fos = null;try{fis = new FileInputStream("out.txt");fos = new FileOutputStream("in.txt");byte[] buffer = new byte[2];int len=-1;while((len=fis.read(buffer)) != -1){fos.write(buffer, 0, len);}}catch(Exception e){e.printStackTrace();}finally{try {fos.close();} catch (IOException e) {e.printStackTrace();}finally{try {fis.close();} catch (IOException e) {e.printStackTrace();}}}}}1.7后
package _02_IO;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class CoptFile_Try_Catch_17 {/** * @param args */public static void main(String[] args) {try(FileInputStream fis = new FileInputStream("out.txt");FileOutputStream fos = new FileOutputStream("in.txt");){int len = -1;byte[] buffer = new byte[2];while((len=fis.read(buffer)) != -1){fos.write(buffer,0,len);}}catch(IOException e){e.printStackTrace();}}}Scanner
package _03_scanner;import java.io.File;import java.io.FileNotFoundException;import java.util.Scanner;public class Demo1 {public static void main(String[] args) {//demo1();Scanner sc = new Scanner(System.in);while(true){String name = sc.next();System.out.println("echo"+name);}}private static void demo1() throws FileNotFoundException {Scanner sc = new Scanner(new File("out.txt"));while(sc.hasNextLine()){System.out.println(sc.nextLine());}}}字符流
一般有中文使用,任何时候可以使用字节流,一般操作二进制文件,就只能使用字节流
FileWriter
FileReader
字节流的拷贝文件
package writerAndreader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.Reader;import java.io.Writer;public class Demo1 {/** * @param args * @throws Exception */public static void main(String[] args) throws Exception {Reader reader = new FileReader("op.txt");Writer writer = new FileWriter("mon.txt");char[] buffer = new char[1024];int len = -1;while((len=reader.read(buffer)) != -1){writer.write(buffer, 0, len);}writer.close();reader.close();}}当只提供字节流时候可以通过InputStreamReader和OutputStreamWriter来进行转换
package writerAndreader;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.Reader;import java.io.Writer;public class Demo2 {/** * @param args * @throws Exception */public static void main(String[] args) throws Exception {FileInputStream fis = new FileInputStream("op.txt");FileOutputStream fos = new FileOutputStream("qq.txt");//如果这里只有字节输入和输出 FileInputStream OutputStream//那么通过什么来转换呢Reader reader = new InputStreamReader(fis);Writer writer = new OutputStreamWriter(fos);//后面的就一样了int len = -1;char[] buffer = new char[1024];while((len=reader.read(buffer)) != -1){writer.write(buffer, 0, len);}writer.close();reader.close();}}Files工具类
package writerAndreader;import java.io.File;import java.io.FileInputStream;import java.io.InputStream;import java.net.URI;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;public class Demo3 {/** * @param args * @throws Exception */@SuppressWarnings("deprecation")public static void main(String[] args) throws Exception {InputStream in = new FileInputStream("op.txt");//这个是一种方法//Files.copy(in,Paths.get("xxoo.txt"));//这个是第二种方法URI uri = new File("tt.txt").toURI();Path path = Paths.get(uri);Files.copy(in,path);}}
0 0
- day18 IO 字节流和字符流&正常关闭 转换流 Scanner Files
- io-字节和字符转换流
- IO-字节、字符转换流
- 黑马程序员-day18-IO流(字符流)
- java基础--IO流之字节、字符和转换流
- day18 IO流
- IO-04字节-字符转换流
- IO之字节字符转换流
- IO分两种流:字节流和字符流
- Java IO字符流和字节流
- io字节流和字符流
- Java-IO:字节流和字符流
- IO 字节流和字符流
- Java-IO-字节流和字符流
- java IO字符流和字节流
- io流中的字节和字符
- 字节字符转换流
- JavaSE---IO流(字节流、转换流、字符流)
- Update Android Support Library to 23.2.0 cause error: XmlPullParserException Binary XML file line #1
- elm FatFs文件系统移植总结
- 洛谷P1739 表达式括号匹配
- ansible在远程机器将程序起在后台
- Unix与Linux、Minx、Minix
- day18 IO 字节流和字符流&正常关闭 转换流 Scanner Files
- 线程和进程
- C++一些初步知识
- html 列表、表单标签的认识
- HashMap源码分析
- 我的2016年读书总结
- shell中map的是使用
- javascript中的||和&&
- PHP----curl默默http的get跟post请求