1. package Common.readFile;
  2.  
  3. import Common.tool.User;
  4. import com.fasterxml.jackson.databind.ObjectMapper;
  5.  
  6. import java.io.*;
  7. import java.nio.charset.Charset;
  8. import java.nio.file.Files;
  9. import java.nio.file.Path;
  10. import java.nio.file.Paths;
  11. import java.util.Map;
  12.  
  13. /**
  14. * @author:
  15. * @date: 2018/12/21
  16. * @description:
  17. */
  18. public class UserIO {
  19. private static final ObjectMapper objectMapper = new ObjectMapper();
  20. public static void main(String[] args) throws IOException {
  21. getFileInputStream();//FileInputStream
  22. getFileOutputStream();//FileOutputStream
  23. getBufferedReaderAndBufferedWriter();//BufferedReader和BufferedWriter
  24. getInputStreamReader();//InputStreamReader
  25. getnewBufferedReader();//Path和newBufferedReader
  26. Convert();//对象转化为json,json转化为map
  27. }
  28.  
  29. /**FileInputStream的用法*/
  30. public static void getFileInputStream(){
  31. try {
  32. String path = "D:/1.txt";
  33. File file = new File(path);
  34. //参数是file或者path,都一样,都可以
  35. FileInputStream fileInputStream = new FileInputStream(path);//文件输入流
  36. byte[] data = new byte[1024];
  37. fileInputStream.read(data);
  38. String str = new String(data, "GBK");
  39. System.out.println(str);
  40. } catch (Exception e) {
  41.  
  42. }
  43. }
  44. /**FileOutputStream的用法*/
  45. public static void getFileOutputStream(){
  46. try {
  47. FileOutputStream fileOutputStream = new FileOutputStream("D:/02.txt");
  48. String name = "FileOutputStream类提供了多种文件写入方法,可以单独写一个字节到文" +
  49. "件,也可以写一个byte数组到文件,也可以取byte数组的部分数据写入到文件。";
  50. fileOutputStream.write(name.getBytes("utf-8"));//文件输出流
  51. fileOutputStream.flush();
  52. fileOutputStream.close();
  53. } catch (Exception e) {
  54. e.printStackTrace();
  55. }
  56.  
  57. }
  58. /**BufferedReader和BufferedWriter的用法*/
  59. public static void getBufferedReaderAndBufferedWriter() throws IOException {
  60. Path path = Paths.get("D:/1.txt");
  61. if (path.toFile().exists()) {
  62. long size = path.toFile().length()/(1024*1024);
  63. System.out.println("文件大小为:" + size + "M");
  64. }
  65. //产生乱码
  66. BufferedReader reader = new BufferedReader(new FileReader(new File("D:/1.txt")));
  67. BufferedWriter bfw = new BufferedWriter(new FileWriter(new File("D:/03.txt")));
  68. String line = null;
  69. try {
  70. while ((line = reader.readLine()) != null) {
  71. System.out.println(line);
  72. bfw.write(line);
  73. bfw.newLine();
  74. }
  75. } catch (Exception e) {
  76. e.printStackTrace();
  77. }finally {
  78. bfw.close();
  79. }
  80. }
  81. /**InputStreamReader的用法*/
  82. public static void getInputStreamReader() throws IOException {
  83. Path path = Paths.get("D:/1.txt");
  84. if (path.toFile().exists()) {
  85. long size = path.toFile().length()/(1024*1024);
  86. System.out.println("文件大小为:" + size + "M");
  87. }
  88. //不产生乱码
  89. BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(path.toFile()),"GBK"));
  90. BufferedWriter bfw = new BufferedWriter(new FileWriter(new File("D:/04.txt")));
  91. String line = null;
  92. try {
  93. while ((line = reader.readLine()) != null) {
  94. System.out.println(line);
  95. bfw.write(line);
  96. bfw.newLine();
  97. }
  98. } catch (Exception e) {
  99. e.printStackTrace();
  100. }finally {
  101. bfw.close();
  102. }
  103. }
  104.  
  105. /**Path和newBufferedReader的用法*/
  106. public static void getnewBufferedReader() throws IOException {
  107. Path path = Paths.get("D:/1.txt");
  108. if (path.toFile().exists()) {
  109. System.out.println("文件存在");
  110. }
  111. BufferedReader reader = Files.newBufferedReader(path, Charset.forName("GBK"));
  112. BufferedWriter bfw = new BufferedWriter(new FileWriter(new File("D:/05.txt")));
  113. String line = null;
  114. try {
  115. while ((line = reader.readLine()) != null) {
  116. bfw.write(line);
  117. bfw.newLine();
  118. }
  119. } catch (Exception e) {
  120. e.printStackTrace();
  121. }finally {
  122. bfw.close();
  123. }
  124. }
  125.  
  126. /**对象转化为json,json转化为map*/
  127. public static void Convert() throws IOException {
  128. User user = new User("yiqq",28);
  129. System.out.println(user);
  130. //对象转Json
  131. String json = objectMapper.writeValueAsString(user);
  132. System.out.println(json);
  133. //Json转map
  134. Map param = objectMapper.readValue(json, Map.class);
  135. System.out.println(param);
  136. }
  137. }

java读写文件IO的更多相关文章

  1. Java读写文件方法总结

    Java读写文件方法总结 Java的读写文件方法在工作中相信有很多的用处的,本人在之前包括现在都在使用Java的读写文件方法来处理数据方面的输入输出,确实很方便.奈何我的记性实在是叫人着急,很多时候既 ...

  2. Java读写文件的几种方式

    自工作以后好久没有整理Java的基础知识了.趁有时间,整理一下Java文件操作的几种方式.无论哪种编程语言,文件读写操作时避免不了的一件事情,Java也不例外.Java读写文件一般是通过字节.字符和行 ...

  3. java读写文件大全

     java读写文件大全 最初java是不支持对文本文件的处理的,为了弥补这个缺憾而引入了Reader和Writer两个类,这两个类都是抽象类,Writer中 write(char[] ch,int o ...

  4. 【java】java 读写文件

    场景:JDK8  将上传的文件,保存到服务器 Java读写文件操作: MultipartFile file InputStream inputStream = file.getInputStream( ...

  5. java 流 文件 IO

    Java 流(Stream).文件(File)和IO Java.io 包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io 包中的流支持很多种格式,比如:基本类 ...

  6. 转:Java读写文件各种方法及性能比较

    干Java这么久,一直在做WEB相关的项目,一些基础类差不多都已经忘记.经常想得捡起,但总是因为一些原因,不能如愿. 其实不是没有时间,只是有些时候疲于总结,今得空,下定决心将丢掉的都给捡起来. 文件 ...

  7. Java读写文件常用方法

    一.字符流:读写纯文本(txt,csv等), 1 字符流写文件主要用:FileWriter,BufferedWriter,PrintWriter 1.1 测试 FileWriter 写入 privat ...

  8. Java 之文件IO编程 之写入

    package com.sun; /* * 操作对文件IO的写 * 2014-08-10 */ import java.io.*; public class File_Write { public s ...

  9. Java 之文件IO编程 之读取

    package com.sun; /* * 这里是对文件IO流读取的操作 * 2014-08-10 */ import java.io.*; public class File_test { publ ...

随机推荐

  1. java并发编程(十七)----(线程池)java线程池架构和原理

    前面我们简单介绍了线程池的使用,但是对于其如何运行我们还不清楚,Executors为我们提供了简单的线程工厂类,但是我们知道ThreadPoolExecutor是线程池的具体实现类.我们先从他开始分析 ...

  2. 2019牛客多校训练第三场H.Magic Line(思维)

    题目传送门 大致题意: 输入测试用例个数T,输入点的个数n(n为偶数),再分别输入n个不同的点的坐标,要求输出四个整数x1,y1,x2,y2,表示有一条经过点(x1,y1),(x2,y2)的直线将该二 ...

  3. 使用python画3D线条

    """用于验证整体趋势正确性""" #!python3 #-*- coding:utf-8 -*- import matplotlib as ...

  4. 关于修改主机名和ssh免密登录

    修改主机名的常规方法: 1.hostname name2.echo name  > /proc/sys/kernel/hostname3.sysctl kernel.hostname=name4 ...

  5. Gin + Vue全栈开发实战(一)

    Gin入门 本章概要 Gin简介 开发第一个Gin程序 1.1 Gin简介 Gin是用Go语言编写的一个轻量级Web应用框架,现在在各个公司包括字节跳动.bilibili等大互联网公司都得到了广泛的应 ...

  6. 直击根源:微信小程序中web-view再次刷新后页面需要退两次

    背景 在上一章(直击根源:vue项目微信小程序页面跳转web-view不刷新)解决了vue在小程序回退不刷新的问题之后,会引出了一个刷新的页面需要点击返回两次才能返回上一个页面 问题描述 在A页面从B ...

  7. 【KakaJSON手册】03_JSON转Model_03_key处理

    有时候,服务器返回的JSON数据的key跟客户端模型的属性名可能不一致,比如客户端遵守驼峰规范叫做nickName,而服务器端返回的JSON可能叫做nick_name.这时候为了保证数据转换成功,就需 ...

  8. Go-cron定时任务

    1.cron(计划任务) 按照约定的时间,定时的执行特定的任务(job). cron 表达式 表达了这种约定. cron 表达式代表了一个时间集合,使用 6 个空格分隔的字段表示. 秒 分 时 日 月 ...

  9. 【redis】redis应用场景,缓存的各种问题

    如果你还不知道redis的基本命令与基本使用方法,请看 [redis]redis基础命令学习集合 缓存 redis还有另外一个重要的应用领域——缓存 引用来自网友的图解释缓存在架构中的位置 默认情况下 ...

  10. Nginx总结(一)Linux如何安装Nginx

    以前写过一些Nginx的文章,但都是用到什么说什么,没有一个完整系统的总结.趁最近有时间,打算将Nginx相关的内容重新整理一下.nginx系列文章地址如下:https://www.cnblogs.c ...