Java如何实现读一个文件(非文本文件)后输出其中自己指定的一部分?

RT,题目是模拟HTTP上载:根据给定HTTP上载文件协议规范以及根据该规范生成的文件,解析出上载的文件内容并输出。通过WEB上传文件时,HTML设置了File类型的文件... RT,题目是模拟HTTP上载:
根据给定 HTTP 上载文件协议规范以及根据该规范生成的文件,解析出上载的文件内容并输出。
通过 WEB 上传文件时, HTML 设置了 File 类型的文件表单,其表单格式为:
<form action="JSP 页面或 Servlet" method="post|get" ENCTYPE="mutipart/form-data" >
<input type="file" name=" 表单元素名称 ">
</form>
服务器可将接收到的上传文件信息及其内容写入一个临时文件。按照 HTTP 协议的规定,临时文件的前四行和最后的五行是表单域的信息,其中第二行有上传文件的文件名信息,第四行结束位置到倒数第六行结束位置之间的内容是文件本身部分。

实现输出文件本身,这道题大致什么思路?用到哪些类和函数?
谢谢!~
样例给的是:
------------naec77rBnUNR3mHEcQV8so↵
Content-Disposition: form-data; name="test"; filename="Mod01.pdf"↵
Content-Type: application/pdf↵

<一个图片>
------------NBHLwhyYXJkqDcJwOLUYGq
Content-Disposition: form-data; name="submit"

上传
------------NBHLwhyYXJkqDcJwOLUYGq--
展开
 我来答
liuyang054
推荐于2017-09-14 · TA获得超过9093个赞
知道大有可为答主
回答量:5317
采纳率:78%
帮助的人:5284万
展开全部
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.util.Scanner;
/**
 * 读取文件指定行数内容
 * @author young
 *
 */
public class ReadSelectedLine {
static void readLineVarFile(String fileName, int lineNumber)
throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(
new FileInputStream(fileName)));
String line = reader.readLine().toString();
if (lineNumber < 0 || lineNumber > getTotalLines(fileName)) {
System.out.println("不在文件的行数范围之内。");
}
int num = 0;
while (line != null) {
if (lineNumber == ++num) {
System.out.println("line   " + lineNumber + ":   " + line);
}
line = reader.readLine();
}
reader.close();
}

// 文件内容的总行数。
static int getTotalLines(String fileName) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(
new FileInputStream(fileName)));
LineNumberReader reader = new LineNumberReader(in);
String s = reader.readLine();
int lines = 0;
while (s != null) {
lines++;
s = reader.readLine();
}
reader.close();
in.close();
return lines;
}
public static void main(String[] args) throws IOException {

// 读取文件
String fileName = "c:\\1.java";

// 获取文件的内容的总行数
int totalNo = getTotalLines(fileName);
System.out.println("There are " + totalNo + " lines in the text!");

// 指定读取的行号,此处也可以改成自由输入
System.out.println("输出文件第几行内容?");
int lineNumber = new Scanner(System.in).nextInt();

// 读取指定行的内容
readLineVarFile(fileName, lineNumber);
}
}

在C盘新建1.java文件,输入任意内容,


运行代码后显示结果如下:

mailyc
2012-02-10 · TA获得超过135个赞
知道小有建树答主
回答量:202
采纳率:0%
帮助的人:130万
展开全部
服务器端应该按照指定格式读取数据,不过既然已经写入了临时文件,那就简单了,直接先按行读取格式头,然后按字节读取文件内容,写入本地文件。
追问
嗯  我就是这样写的…
不过过不了,用断点没看出啥问题。。但写完的图片打不开
像样例里第四行的空行那些不用写进去吧?
追答
空行不用
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
偶吉玉0H9
2015-07-25 · TA获得超过226个赞
知道小有建树答主
回答量:170
采纳率:100%
帮助的人:91.5万
展开全部
这需要看你想要输出那一部分,而且非文本文件的话文件是有自己的文件结构的,只输出其中一部分估计也用不了.
真想操作的话,直接二进制读取,然后判断然后二进制写出就行了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
漫步匆匆
2012-02-13 · TA获得超过109个赞
知道小有建树答主
回答量:277
采纳率:0%
帮助的人:98.4万
展开全部
额??网络爬虫/?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式