当前位置: 首页> 科技> 互联网 > doc文件打开乱码怎么办_购物网站推广_网站排名优化外包_百度推广开户费用标准

doc文件打开乱码怎么办_购物网站推广_网站排名优化外包_百度推广开户费用标准

时间:2025/7/13 8:47:39来源:https://blog.csdn.net/weixin_46899412/article/details/143085064 浏览次数:0次
doc文件打开乱码怎么办_购物网站推广_网站排名优化外包_百度推广开户费用标准

IO是指input/output,即输入和输出。输入和输出是以内存为中心的:

  • input 从外部往内存输入数据,比如硬盘中的数据写入内存等。

  • output 从内存往外输出数据,比如内存数据写入硬盘等。

File

File类表示一个文件或者一个目录。使用File对象可以对磁盘进行读写操作。

常用操作

//绝对路径或者相对路径
String pathname="E:\\demo\\file\\";
//1.打开文件
File file=new File(pathname);
if(!file.exists()) {//2.创建文件file.createNewFile();//创建目录file.mkdir();
}
//3.判断类型
System.out.println(file.isFile());
if (file.isDirectory()) {//4.获取当前目录下的所有文件和目录File[] files = file.listFiles();//获取当前目录下以.txt结尾的文件File[] listFiles = file.listFiles(((dir, name) -> dir.isFile() && name.endsWith(".txt")));
}
//5.获取父目录
File parentFile = file.getParentFile();
//6.删除文件
file.delete();
file.deleteOnExit();

InputStream

InputStream是java.io包下的最基本的输入流。InputStream是一个抽象类,是所有输入流的超类。

常用操作

  • available() - 返回输入流中可用的字节数

  • read() - 从输入流中读取一个字节的数据

  • read(byte[] array) - 从流中读取字节并存储在指定的数组中

  • close() - 关闭输入流

常用子类

FileInputStream

用于从文件中读取字节数据。FileInputStream其他方法

  • getChannel() - 返回FileChannel与输入流关联的对象

  • getFD() - 返回FileDescriptor与输入流关联的文件描述符

public class Test {public static void main(String[] args) throws Exception {//绝对路径或者相对路径String pathname="E:\\demo\\file\\text1.txt";//打开文件File file = new File(pathname);//判断是不是可用文件if (file.exists() && file.isFile()) {//1.创建输入流FileInputStream inputStream = new FileInputStream(file);//2.获取输入流的长度int available = inputStream.available();//3.读取一个字符int read = inputStream.read();//4.批量读取byte[] data = new byte[Math.min(available, 256)];int len = 0;while ((len = inputStream.read(data)) > 0) {System.out.println(new String(data, 0, len));}//5.关闭输入流inputStream.close();}}
}

ByteArrayInputStream

用于从字节数组读取字节数据。

public class Test {public static void main(String[] args) throws Exception {//1.创建输入流ByteArrayInputStream inputStream = new ByteArrayInputStream("ByteArrayInputStream".getBytes(StandardCharsets.UTF_8));//2.获取输入流的长度int available = inputStream.available();//3.读取一个字符int read = inputStream.read();//4.批量读取byte[] data = new byte[Math.min(available, 256)];int len = 0;while ((len = inputStream.read(data)) > 0) {System.out.println(new String(data, 0, len));}//5.关闭输入流inputStream.close();}
}

ObjectInputStream

用于读取对象。主要用于读取ObjectOutputStream写入的数据。ObjectInputStream的其他方法

public class Test implements Serializable {private String name;public Test(String name) {this.name = name;}@Overridepublic String toString() {return "Test{" +"name='" + name + '\'' +'}';}public static void main(String[] args) throws Exception {//序列化对象ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(2048);ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);objectOutputStream.writeObject(new Test("test"));byte[] bytes = byteArrayOutputStream.toByteArray();byteArrayOutputStream.close();objectOutputStream.close();//1.创建输入流ObjectInputStream inputStream = new ObjectInputStream(new ByteArrayInputStream(bytes));//2.获取对象Object object = inputStream.readObject();if (Objects.nonNull(object) && object instanceof Test) {System.out.println(object);}//3.关闭输入流inputStream.close();}
}

OutputStream

OutputStream是java.io包下的最基本的输出流流。OutputStream是一个抽象类,是所有输出流的超类。

常用操作

  • write(int ) - 将指定的字节写入输出流

  • write(byte[] array) - 将指定数组中的字节写入输出流

  • flush() - 强制将输出流中存在的所有数据写入目标

  • close() - 关闭输出流

public class Test implements Serializable {public static void main(String[] args) throws Exception {//绝对路径或者相对路径String pathname="E:\\demo\\text1.txt";//打开文件File file = new File(pathname);//判断是不是可用文件if (file.exists() && file.isFile()) {//1.创建输入流OutputStream outputStream = new FileOutputStream(pathname);//2.数据写入到输出流outputStream.write(1);outputStream.write("hello world".getBytes(StandardCharsets.UTF_8));//3.输出流数据写入到目标outputStream.flush();//4.关闭输出流outputStream.close();}}
}

常用子类

FileOutputStream

用于将字节数据写入到文件中。FileOutputStream其他方法

  • getChannel() - 返回FileChannel与输入流关联的对象

  • getFD() - 返回FileDescriptor与输入流关联的文件描述符

ByteArrayOutputStream

用于将字节数据写入到字节数组中。ByteArrayOutputStream其他方法

  • toString() - 字节数组转成String对象并返回

  • toByteArray() - 返回字节数组

  • writeTo(OutputStream out) - 字节数组写入到输出流中

ObjectOutputStream

ObjectOutputStream其他方法

Reader

Reader是一个字符为单位的输入流接口

常用操作

  • read() - 从输入流中读取一个字符的数据

  • read(char[] array) - 从流中读取字符并存储在指定的数组中

  • read(CharBuffer buffer) - 从流中读取字符并存储在指定的缓冲区中

  • close() - 关闭输入流

常用子类

FileReader

public class Test implements Serializable {public static void main(String[] args) throws Exception{//绝对路径或者相对路径String pathname="E:\\demo\\text1.txt";//打开文件File file = new File(pathname);//判断是不是可用文件if (file.exists() && file.isFile()) {//1.创建输入流Reader reader = new FileReader(file);//2.读取一个字符int read = reader.read();//3.批量读取CharBuffer charBuffer=CharBuffer.allocate(256);while (reader.read(charBuffer) > 0) {//从写模式切换到读模式charBuffer.flip();System.out.println(charBuffer);//清空缓冲区charBuffer.clear();}int len = 0;char[] data = new char[256];while ((len = reader.read(data)) > 0) {System.out.println(new String(data, 0, len));}//4.关闭输入流reader.close();}}
}

CharArrayReader

InputStreamReader

Writer

Writer是一个字符为单位的输出流接口

常用操作

  • write(int c) - 写入一个字符

  • write(String str) - 写入一个字符串

  • write(char[] array) -写入一个字符数组

  • close() - 关闭输入流

常用子类

FileWriter

public class Test implements Serializable {public static void main(String[] args) throws Exception{//绝对路径或者相对路径String pathname="E:\\demo\\text1.txt";//打开文件File file = new File(pathname);//判断是不是可用文件if (file.exists() && file.isFile()) {char[] buffer = new char[128];//1.创建输出流FileWriter writer = new FileWriter(file);//2.写入一个字符writer.write(12);//3.写入字符串writer.write("hello world");writer.flush();//4.关闭输出流writer.close();}}
}

CharArrayWriter

OutputStreamWriter

关键字:doc文件打开乱码怎么办_购物网站推广_网站排名优化外包_百度推广开户费用标准

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: