导航:首页 > 文件目录 > 读取文件流路径

读取文件流路径

发布时间:2023-03-23 04:46:01

1. java 中配置文件路径读取使用FileReader和InputStream区别和用法

一、按数据来源(去向)分类:
1、是文件: FileInputStream, FileOutputStream, FileReader, FileWriter
2、是byte[]:ByteArrayInputStream, ByteArrayOutputStream
3、是Char[]: CharArrayReader, CharArrayWriter
4、是String: StringBufferInputStream, StringReader, StringWriter
5、网络数据流:InputStream, OutputStream, Reader, Writer

二、按是否格式化输出分:
1、要格式化输出:PrintStream, PrintWriter

三、按是否要缓冲分:
1、要缓冲:BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter

四、按数据格式分:
1、二进制格式(只要不能确定是纯文本的): InputStream, OutputStream及其所有带Stream结束的子类
2、纯文本格式(含纯英文与汉字或其他编码方式);Reader, Writer及其所有带Reader, Writer的子类

五、按输入输出分:
1、输入:Reader, InputStream类型的子类
2、输出:Writer, OutputStream类型的子类

六、特殊需要:
1、从Stream到Reader,Writer的转换类:InputStreamReader, OutputStreamWriter
2、对象输入输出:ObjectInputStream, ObjectOutputStream
3、进程间通信:PipeInputStream, PipeOutputStream, PipeReader, PipeWriter
4、合并输入:SequenceInputStream
5、更特殊的需要:PushbackInputStream, PushbackReader, LineNumberInputStream, LineNumberReader

决定使用哪个类以及它的构造进程的一般准则如下(不考虑特殊需要):
首先,考虑最原始的数据格式是什么: 原则四
第二,是输入还是输出:原则五
第三,是否需要转换流:原则六第1点
第四,数据来源(去向)是什么:原则一
第五,是否要缓冲:原则三 (特别注明:一定要注意的是readLine()是否有定义,有什么比read, write更特殊的输入或输出方法)
第六,是否要格式化输出:原则二

Java中Inputstream与Reader的区别

Reader支持16位的Unicode字符输出,InputStream支持8位的字符输出。
Reader和InputStream分别是I/O库提供的两套平行独立的等级机构,
InputStream、OutputStream是用来处理8位元的流,
Reader、Writer是用来处理16位元的流。
而在JAVA语言中,byte类型是8位的,char类型是16位的,所以在处理中文的时候需要用Reader和Writer。
值得说明的是,在这两种等级机构下,还有一道桥梁InputStreamReader、OutputStreamWriter负责进行InputStream到Reader的适配和由OutputStream到Writer的适配。

java.io.Reader 和 java.io.InputStream 组成了 Java输入类。Reader 用于读入16位字符,也就是 Unicode编码的字符;而 InputStream 用于读入 ASCII字符和二进制数据。
在 Java中,有不同类型的 Reader 输入流对应于不同的数据源:
FileReader 用于从文件输入;
CharArrayReader 用于从程序中的字符数组输入;
StringReader 用于从程序中的字符串输入;
PipedReader 用于读取从另一个线程中的 PipedWriter 写入管道的数据。
相应的也有不同类型的 InputStream 输入流对应于不同的数据源:FileInputStream,ByteArrayInputStream,StringBufferInputStream,PipedInputStream。另外,还有两种没有对应 Reader 类型的 InputStream 输入流:
Socket 用于套接字;
URLConnection 用于 URL 连接。
这两个类使用 getInputStream() 来读取数据。
相应的,java.io.Writer 和 java.io.OutputStream 也有类似的区别。

2. 如何查看java读取文件的路径

File类有两个常用方法可以得到文件路径一个是:getCanonicalPath(),另一个是:getAbsolutePath(),可以通过File类的实例调用这两个方法例如.getAbsolutePath()其中file是File的实例对象。下面是一个具体例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

public class PathTest
{
public static void main(String[] args)
{
File file = new File(".\\src\\");
System.out.println(file.getAbsolutePath());
try
{
System.out.println(file.getCanonicalPath());
} catch (IOException e)
{
e.printStackTrace();
}
}
}

getAbsolutePath()和getCanonicalPath()的不同之处在于,getCanonicalPath()得到的是一个规范的路径,而getAbsolutePath()是用构造File对象的路径+当前工作目录。例如在上面的例子中.(点号)代表当前目录。getCanonicalPath()就会把它解析为当前目录但是getAbsolutePath()会把它解析成为目录名字(目录名字是点号)。
下面是上面程序在我电脑上的输出:
G:\xhuoj\konw\.\src\G:\xhuoj\konw\src\

3. Java读取文件的几种方式

方式一:采用ServletContext读取,读取配置文件的realpath,然后通过文件流读取出来。因为是用ServletContext读取文件路径,所以配置文件可以放入在web-info的classes目录中,也可以在应用层级及web-info的目录中。文件存放位置具体在eclipse工程中的表现是:可以放在src下面,也可放在web-info及webroot下面等。因为是读取出路径后,用文件流进行读取的,所以可以读取任意的配置文件包括xml和properties。缺点:不能在servlet外面应用读取配置信息。
方式二:采用ResourceBundle类读取配置信息,
优点是:可以以完全限定类名的方式加载资源后,直接的读取出来,且可以在非Web应用中读取资源文件。缺点:只能加载类classes下面的资源文件且只能读取.properties文件。
方式三:采用ClassLoader方式进行读取配置信息
优点是:可以在非Web应用中读取配置资源信息,可以读取任意的资源文件信息
缺点:只能加载类classes下面的资源文件。
方法4 getResouceAsStream
XmlParserHandler.class.getResourceAsStream 与classloader不同

4. 请教:如何读取文件,文件路径该如何写

应用程序只能读写自己的文件。访问的时候不需要加路径。只要文件名就行了。文件是放在你的应用包名/file下面。上面的例子,文件应该会在/data/data/com.android.txt/file/下面。

5. 文件流怎么获取网络路径

在请求头里设置Range,可以拿到不同的部分,前提还需要webserver支持。




/**
*开始下载
*@throwsException
*/
publicvoidstartDown()throwsException{
HttpClienthttpClient=newDefaultHttpClient();
try{
//获取下载文件信息
getDownloadFileInfo(httpClient);
//启动多个下载线程
startDownloadThread();
//开始监视下载数据
monitor();
}catch(Exceptione){
throwe;
}finally{
httpClient.getConnectionManager().shutdown();
}
}

/**
*获取下载文件信息
*/
(HttpClienthttpClient)throwsIOException,
ClientProtocolException,Exception{
HttpHeadhttpHead=newHttpHead(url);
HttpResponseresponse=httpClient.execute(httpHead);
//获取HTTP状态码
intstatusCode=response.getStatusLine().getStatusCode();

if(statusCode!=200)thrownewException("资源不存在!");
if(getDebug()){
for(Headerheader:response.getAllHeaders()){
System.out.println(header.getName()+":"+header.getValue());
}
}

//Content-Length
Header[]headers=response.getHeaders("Content-Length");
if(headers.length>0)
contentLength=Long.valueOf(headers[0].getValue());

httpHead.abort();

httpHead=newHttpHead(url);
httpHead.addHeader("Range","bytes=0-"+(contentLength-1));
response=httpClient.execute(httpHead);
if(response.getStatusLine().getStatusCode()==206){
acceptRanges=true;
}
httpHead.abort();
}

/**
*启动多个下载线程
*@throwsIOException
*@throwsFileNotFoundException
*/
()throwsIOException,
FileNotFoundException{
//创建下载文件
Filefile=newFile(localPath);
file.createNewFile();
RandomAccessFileraf=newRandomAccessFile(file,"rw");
raf.setLength(contentLength);
raf.close();

//定义下载线程事件实现类
=newDownloadThreadListener(){
publicvoidafterPerDown(DownloadThreadEventevent){
//下载完一个片段后追加已下载字节数
synchronized(object){
DownloadTask.this.receivedCount+=event.getCount();
}
}

publicvoiddownCompleted(DownloadThreadEventevent){
//下载线程执行完毕后从主任务中移除
threads.remove(event.getTarget());
if(getDebug()){
System.out.println("剩余线程数:"+threads.size());
}
}
};

//不支持多线程下载时
if(!acceptRanges){
if(getDebug()){
System.out.println("该地址不支持多线程下载");
}
//定义普通下载
DownloadThreadthread=newDownloadThread(url,0,contentLength,file,false);
thread.addDownloadListener(listener);
thread.start();
threads.add(thread);
return;
}

//每个请求的大小
longperThreadLength=contentLength/threadCount+1;
longstartPosition=0;
longendPosition=perThreadLength;
//循环创建多个下载线程
do{
if(endPosition>=contentLength)
endPosition=contentLength-1;

DownloadThreadthread=newDownloadThread(url,startPosition,endPosition,file);
thread.addDownloadListener(listener);
thread.start();
threads.add(thread);

startPosition=endPosition+1;//此处加1,从结束位置的下一个地方开始请求
endPosition+=perThreadLength;
}while(startPosition<contentLength);
}

6. 关于java IO读取文件路径问题

看你的包名,和你的绝对路径,你的aa.txt和bb.txt文件应该是放在包test.io.TestTxt下吧,和内TestOneToOnetxt类一个路径,那么你可以这么容做:
File f1 = new File(TestOneToOnetxt.class.getResource("aa.txt").getFile());

7. C++文件读取路径问题

直接写路径就可以
注意一点就是在c中,斜杠\是保留符号,所以要正确编译的话需要两个斜杠\\
如c:\in\a.txt
那吗在程序中要这么写
c:\\in\\a.txt

8. java读取本地文件路径怎么写

构造抄File对象,使用File对象取上级目录,再取绝对路径 File f = new File("c:\\temp\\01\\1.txt"); if(f.exists()){ System.out.println(f.getParentFile().getAbsolutePath()); }

9. vs中使用fopen读取文件放在哪里

vs中使用fopen读取文件放在任意地方 只要你的路径写对了比如fopen("d://我的文件//test.txt");就可以。
fopen的函数原型为: FILE *fopen(const char *filename, const char *mode);其功能是使用给定的模式 mode 打开 filename 所指向的文件。文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回 NULL,并把错误代码存在 error 中。该函数位于C 标准库中。

阅读全文

与读取文件流路径相关的资料

热点内容
maya粒子表达式教程 浏览:84
抖音小视频如何挂app 浏览:283
cad怎么设置替补文件 浏览:790
win10启动文件是空的 浏览:397
jk网站有哪些 浏览:134
学编程和3d哪个更好 浏览:932
win10移动硬盘文件无法打开 浏览:385
文件名是乱码还删不掉 浏览:643
苹果键盘怎么打开任务管理器 浏览:437
手机桌面文件名字大全 浏览:334
tplink默认无线密码是多少 浏览:33
ipaddgm文件 浏览:99
lua语言编程用哪个平台 浏览:272
政采云如何导出pdf投标文件 浏览:529
php获取postjson数据 浏览:551
javatimetask 浏览:16
编程的话要什么证件 浏览:94
钱脉通微信多开 浏览:878
中学生学编程哪个培训机构好 浏览:852
荣耀路由TV设置文件共享错误 浏览:525

友情链接