java如何用io流保存,java的io流总结

本文目录一览:

java如何实现 io流传输过来的文件,提示另存为弹出窗口?

弹出窗口,我理解为浏览器弹出窗口,所以必定有后端服务器程序,这里重点说的就是服务器程序。

第一步:设置Response头部(最关键)

response.setContentType(“application/octet-stream;charset=UTF-8”);

// 设置弹出框提示的文件名

response.addHeader(“Content-Disposition”, “attachment; filename=” + java.net.URLEncoder.encode(fileName, “UTF-8”));

第二步:解析输入流

// 这里的in为你的输入流

BufferedInputStream is = new BufferedInputStream(in);

// 准备缓冲区

byte[] buffer = new byte[4096];

第三步:将输入流转换为输出流

BufferedOutputStream os = new BufferedOutputStream(response.getOutputStream());

int offset = 0;

while((offset = is.read(buffer, 0, 4096) -1) {

os.write(buffer, 0, offset)

}

第四步:关闭输入输出流

os.close();

is.close();

JAVA怎么用IO流保存一部电影

其实原理就是下载电影文件内容至一个IO流中,流最终是可以保存为文件的。

JAVA中我想用IO流把服务器上的文件保存到本机

理论上讲这是不行的!除非你手动进行远程下载,因为服务器不能自动操作客户机,这样做无异于病毒。

java的IO流中可以通过自定义一个数组来存储数据,为什么还要使用缓存区呢?

IO流自定义字节流的缓冲区:

思路:BufferedInputStream类中read()方法的工作原理

1)先一个一个从字节流中读取字节,读取一定量(自定义)之后,存储在一个字节数组(缓冲区)(FileInputStream.read(byte[] b)),并获得存储数量(read方法的返回值)。

2)一个一个字节返回,返回一个,存储数量减1,然后指针往后移一位,准备取下一个。

3)如果存储数量为0 ,代表当前数组中所有数据已经全部取完,此时再来一次读取(read(byte[] b)),再获得此次存储数量。

4)如果存储数量(即read方法返回-1),代表读到文件末尾,返回-1。

因此,需要用到以下几个变量:

读取的字节数量,指向数组中准备取哪一个的指针,将要返回的字节变量。

java中如何通过IO流将稀疏数组写入磁盘和从磁盘中读取,整行存,整行取

//写入磁盘

public static void writ(int sparseArr[][]) {

System.out.println(“写入磁盘的数据中~~~~~~”);

File file = new File(“E:\\java\\sparseArr.txt”);

BufferedWriter bw = null;

try {

bw = new BufferedWriter(new FileWriter(file));

if (!file.exists()) {

file.createNewFile();

}

StringBuilder allBuilder = new StringBuilder();

for (int[] rows : sparseArr) {

StringBuilder rowBuilder = new StringBuilder();

for (int item : rows) {

rowBuilder.append(item + “\t”);

}

allBuilder.append(rowBuilder + “\n”);

}

bw.write(String.valueOf(allBuilder));

bw.flush();

bw.close();

} catch (IOException e) {

e.printStackTrace();

}

}

//读取磁盘

public static int[][] read() {

System.out.println(“读取磁盘的数据中~~~~~~”);

File file = new File(“E:\\java\\sparseArr.txt”);

int[][] sparseArr = null;

try {

BufferedReader br = new BufferedReader(new FileReader(file));

if (!file.exists()) {

file.createNewFile();

}

String row = br.readLine();

String[] s = new String(row).split(“\t”);

sparseArr = new int[Integer.parseInt(s[0])][Integer.parseInt(s[1])];

while ((row = br.readLine()) != null) {

String[] s2 = new String(row).split(“\t”);

sparseArr[Integer.parseInt(s2[0])][Integer.parseInt(s2[1])] = Integer.parseInt(s2[2]);

}

br.close();

} catch (IOException e) {

e.printStackTrace();

}

return sparseArr;

}

java怎么使用io流读取一个文件夹里面

使用工具类Properties

工具类有Load()方法 用于加载文件

首先将文件写成流(输入)

File file=new  File(confPath);

            in = new FileInputStream(file);

加载流load(in)如果需要操作则完成具体操作

输出流并保存文件

out2 = new OutputStreamWriter(new FileOutputStream(confPath),”GBK”);

            cp.store(out2);

完成

具体实例代码

public String updateConfParam(ConfParam cpl) throws IOException {

        String error = null;

        Properties cp=new Properties();

        InputStream in= null;

        OutputStreamWriter out1=null;

        OutputStreamWriter out2=null;

        JSONObject jObj = new JSONObject();

        try {

            String confPath=validateSystem(cpl.getConfAddress()+”/”+cpl.getConfName());

            File file=new  File(confPath);

            in = new FileInputStream(file);   

            cp.load(in);

            out1=new OutputStreamWriter(new FileOutputStream(confPath+”.bak”),”GBK”);

            cp.store(out1);

            cpl.setParaOldValue(cp.getProperty(cpl.getParaKey()));

            cp.setProperty(cpl.getParaKey(), cpl.getParaValue());    

            out2 = new OutputStreamWriter(new FileOutputStream(confPath),”GBK”);

            cp.store(out2);

            jObj.put(“paraOldValue”, cpl.getParaOldValue());

            jObj.put(“paraValue”, cpl.getParaValue());

        } catch (FileNotFoundException e) {

            error=e.getMessage();

        } catch (IOException e1) {

            error = e1.getMessage();

        }

        finally{

            if(in !=null){

                in.close();

            }

            if(out1 !=null){

                out1.close();

            }

            if(out2 !=null){

                out2.close();

            }

            if(error != null){

                jObj.put(“error”, error);

            }

        }

        return jObj.toString();

    }

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/247791.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 13:23
下一篇 2024-12-12 13:23

相关推荐

  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • 如何用Python写爱心

    本文将会从多个方面阐述如何用Python语言来画一个美丽的爱心图案。 一、准备工作 在开始编写程序之前,需要先理解一些编程基础知识。首先是绘图库。Python有很多绘图库,常见的有…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29
  • 如何用Python统计列表中各数据的方差和标准差

    本文将从多个方面阐述如何使用Python统计列表中各数据的方差和标准差, 并给出详细的代码示例。 一、什么是方差和标准差 方差是衡量数据变异程度的统计指标,它是每个数据值和该数据值…

    编程 2025-04-29

发表回复

登录后才能评论