精华内容
下载资源
问答
  • Java 创建文件输出流的时候报错

    千次阅读 2017-04-02 15:34:24
    问题:在项目中我们用Apache的Mahout进行协同...但是在创建文件输出流的时候却捕获到了一个异常- -·package MicrosoftImageCup;import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.Fil

    问题:

    在项目中我们用Apache的Mahout进行协同过滤的推荐,需要打开一个csv文件并将数据库里的用户数据存入其中,从而进行书籍推荐。但是在创建文件输出流的时候却捕获到了一个异常- -·

    package MicrosoftImageCup;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import java.util.ArrayList;
    import java.util.List;
    
    
    public class CSVUtils {
    
        /**
         * 导入
         * 
         * @param file csv文件(路径+文件名),csv文件不存在会自动创建
         * @param dataList 数据
         * @return
         */
        public static boolean importCsv(File file, List<String> dataList){
            boolean isSucess=false;
            FileOutputStream out=null;
            OutputStreamWriter osw=null;
            BufferedWriter bw=null;
            try {
                out = new FileOutputStream(file);
                osw = new OutputStreamWriter(out);
                bw =new BufferedWriter(osw);
                if(dataList!=null && !dataList.isEmpty()){
                    for(String data : dataList){
                        bw.append(data).append("\r");
                    }
                }
    
                isSucess=true;
            } catch (Exception e) {
    
                isSucess=false;
            }finally{
    
                if(bw!=null){
                    try {
                        bw.close();
                        bw=null;
                    } catch (IOException e) {
                        e.printStackTrace();
                    } 
                }
                if(osw!=null){
                    try {
                        osw.close();
                        osw=null;
                    } catch (IOException e) {
                        e.printStackTrace();
                    } 
                }
                if(out!=null){
                    try {
                        out.close();
                        out=null;
                    } catch (IOException e) {
                        e.printStackTrace();
                    } 
                }
            }
    
            return isSucess;
        }
    
        /**
         * 导出
         * 
         * @param file csv文件(路径+文件)
         * @return
         */
        public static List<String> exportCsv(File file){
            List<String> dataList=new ArrayList<String>();
    
            BufferedReader br=null;
            try { 
                br = new BufferedReader(new FileReader(file));
                String line = ""; 
                while ((line = br.readLine()) != null) { 
                    dataList.add(line);
                }
            }catch (Exception e) {
    
            }finally{
                if(br!=null){
                    try {
                        br.close();
                        br=null;
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
    
            return dataList;
        }
    }
    

    out = new FileOutputStream(file);

    这句的时候报了异常

    原因:

    原来是我在运行的时候,那个CSV文件是在程序外大开着的。。。。
    = = 所以才报了错。。。

    展开全文
  • 流是一组有序的数据序列,根据操作类型,分为输入流和输出流。程序从输入流读取数据,向输出流写入数据。Java是面向对象的程序语言,每一个数据流都是一个对象,它们提供了各种支持“读入”与“写入”操作的流类。...

    输入输出含义和意义:

    输入和输出功能是Java对程序处理数据能力的提高,java以流的形式处理数据。

    流是一组有序的数据序列,根据操作类型,分为输入流和输出流。

    程序从输入流读取数据,向输出流写入数据。

    Java是面向对象的程序语言,每一个数据流都是一个对象,它们提供了各种支持“读入”与“写入”操作的流类。

    Java的输入输出功能来自java.io 包中的InputStream类、OutputStream类、Reader类和Writer类以及继承它们的各种子类。

    文件类(File类):

    File类用于封装系统的文件和目录的相关信息。在该类中定义了一些与平台无关的方法来操作文件。例如文件的大小、修改时间、文件路径等。

    //创建File对象的三种方法

    new File (String pathName);

    File file = new File("E://1.txt");

    //parent :父抽象路径名 child:子路径名字符串

    new File(String parent , String child);

    File 类是对文件和文件夹的抽象,包含了对文件和文件夹的多种属性和操作方法。File类的常用方法如下表:

    返回方法说明StringgetName获取文件名称

    StringgetParent获取文件的父路径字符串

    StringgetPath获取文件的相对路径字符串

    StringgetAbsolutePath获取文件的绝对路径字符串

    booleanexists判断文件或者文件夹是否存在

    booleanisFile判断是不是文件类型

    booleanisDirectory判断是不是文件夹类型

    booleandelete删除文件或文件夹,如果删除成功返回结果为true

    booleanmkdir创建文件夹,创建成功返回true

    booleansetReadOnly设置文件或文件夹的只读属性

    longlength获取文件的长度

    longlastModified获取文件的最后修改时间

    String[ ]list获取文件夹中的文件和子文件夹的名称,并存放到字符串数组中

    package com.io;

    import java.io.File;

    import java.util.Date;

    /**

    * 在src根目录下创建FileInfo类,在该类的主方法中创建文件对象,通过File类的相关方法,获取文件的相关信息

    */

    public class FileInfo {

    public static void main(String[] args) {

    String filePath = "src/com/io/FileInfo.java";

    // 根据指定路径创建文件对象

    File file = new File(filePath);

    System.out.println("文件名称:" + file.getName());

    System.out.println("文件是否存在:" + file.exists());

    System.out.println("文件的相对路径:" + file.getPath());

    System.out.println("文件的绝对路径:" + file.getAbsolutePath());

    System.out.println("是否为可执行文件:" + file.canExecute());

    System.out.println("文件可以读取:" + file.canRead());

    System.out.println("文件可以写入:" + file.canWrite());

    System.out.println("文件上级路径:" + file.getParent());

    System.out.println("文件大小:" + file.length() + "B");

    System.out.println("文件最后修改时间:" + new Date(file.lastModified()));

    System.out.println("是否文件类型:" + file.isFile());

    System.out.println("是否为文件夹:" + file.isDirectory());

    }

    }

    运行结果为:

    e08dff1956e492b24fc108f8d36d246c.png

    注意:在使用delete()方法删除File对象时,如果删除的对象是目录,该目录中的内容必须为空。

    字节输入输出流:

    字节流用于处理二进制数据的读取和写入,它以字节为单位,InputStream类和OutputStream类是字节流的抽象类,它们定义了数据流读取和写入的基本方法。各个子类会根据其特点实现或覆盖这些方法。

    1、字节数入流抽象类InputStream

    InputStream 类是字节输入流的抽象类,定义了操作输入流的各种方法,这些方法如下:

    返回方法说明intavailable()返回当前输入流的数据读取方法可以读取的有效字节数量

    Abstract intread()从当前数据流中读取一个字节。若已达到流结尾,则返回-1

    intread(byte[ ] bytes)从当前输入流读取一定的byte数据,并存取在数组中,然后返回读取的byte数据的数量,若已到达流结尾,则返回-1。

    voidreset()将当前的输入流重新定位到最后一次调用mark()方法时的位置

    voidmark(int readlimit)在当前输入流中做标记位置,当调用reset()方法时将返回到该位置,从标记位置开始,到再读入readlimit个字符为止,这个标记都维持有效。

    BooleanmarkSupported()测试当前输入流是否支持mark()和reset()方法,只要其中一个不支持,则返回false

    longskip(long n)跳过和丢弃当前输入的n个字节数据

    voidclose()关闭当前输入流,并释放任何与之相关联的系统资源

    InputStream 类是抽象类,不能通过new关键字来创建该实例对象,需要其子类创建该实例对象。

    package com.io;

    import java.io.IOException;

    import java.io.InputStream;

    /**

    * 创建InputStream实例inp,并将其赋值为System类的in属性,定义为控制台输入流,从inp输入流中获取字节信息,

    * 用这些字节信息创建字符串,并将其在控制台上输出。

    */

    public class InputMessage {

    public static void main(String[] args) {

    InputStream inp = System.in;

    byte[] bytes = new byte[1024];

    try {

    while(inp.read() != -1){

    //根据用户输入的信息创建字符串

    String str = new String(bytes).trim();

    }

    inp.close(); //关闭流

    } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    }

    2、字节输出流抽象类OutputStream类

    OutputStream定义了输出流的各种方法,如下表:

    返回方法说明voidwrite(byte[ ] b)将byte[ ] 数组中的数据写入当前输出流

    voidwrite(byte[] b ,int off, int len)将byte[ ]数组下标off开始的len长度的数据写入当前输出流

    Abstract voidwrite(int b)写入一个byte数据到当前输出流

    voidflush()刷新当前输出流,并强制写入所有缓冲的字节数据

    voidclose()关闭当前输出流

    和InputStream类一样,OutputStream 类是抽象类,不能通过new关键字来创建该实例对象,需要其子类创建该实例对象。

    使用InputStream从控制台获取用户输入的数据信息实例:

    package com.io;

    import java.io.IOException;

    import java.io.OutputStream;

    /**

    * 创建OutputStream实例out,并将其赋值为System.out标准输出流。通过write()方法向流写入数据。

    */

    public class OutputData {

    public static void main(String[] args) {

    OutputStream output = System.out; //实例化OutputStream对象

    byte[] bytes = "使用OutputStream输出流在控制台输出字符串\n".getBytes(); //创建bytes数组

    try {

    output.write(bytes);

    bytes = "输出内容:\n".getBytes();

    output.write(bytes); //向流中写入数据

    bytes = "Java数据交互管道——IO流 \n".getBytes();

    output.write(bytes);

    output.close();

    } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    }

    输出结果为:

    f04dd812a3430efa6c2d28cc27a643d8.png

    3、文件字节输入流类 : FileInputStream类

    文件字节输入流可以从指定路径的文件中读取字节数据。

    文件字节输入流继承InputStream类,并实现了读取输入流的各种方法。

    // 文件字节输入流创建的构造方法语法

    //以File对象为参数创建FileInputStream实例

    new FileInputStream (File file);

    //以文件对象的绝对路径为参数创建FileInputStream实例

    new FileInputStream (String filePath);

    4、 文件字节输出流类:FileOutputStream

    文件字节输出流关联指定文件路径的文件,数据通过文件字节输出流以字节为单位输出并保存到文件中。

    文件字节输出流继承自OutputStream类,并实现OutputStream类的各种方法。

    //文件字节输出流的构造方法

    //以File对象为参数创建FileOutputStream实例

    new FileOutputStream (File file)

    //以文件对象的绝对路径为参数创建FileOutputStream实例

    new FileOutputStream (String filePath)

    文件的写入和读取实例:

    package com.io;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    import java.io.IOException;

    /**

    * 创建OutputStream实例out,并将其赋值为System.out标准输出流,通过write方法向流中写入数据

    */

    public class FileCreate {

    public static void main(String[] args) {

    File file = new File("D:/", "word.txt"); //创建文件对象

    try {

    if (!file.exists()) { //如果文件不存在则新建文件

    file.createNewFile();

    }

    FileOutputStream output = new FileOutputStream(file);

    byte[] bytes = "Java数据交流管道——IO流".getBytes();

    output.write(bytes); //将数组的信息写入文件中

    output.close();

    } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    try {

    FileInputStream input = new FileInputStream(file);

    byte[] bytes2 = new byte[1024];

    int len = input.read(bytes2);

    System.out.println("文件中的信息是:" + new String(bytes2, 0, len));

    input.close();

    } catch (Exception e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    }

    字符输入输出流:

    字符输入输出流和字节输入输出流有相同的功能,但传送数据的方式不一样,字节流以字节为单位传送数据,可以是任何类型的数据,例如:文本、音频、视频、图片等。而字符流则以字符为单位传送数据,只能传送文本类型的数据。

    使用字符输入输出流的好处是:当读取中文时不会出现乱码问题,而使用字节输入输出流时,并不能保证这一点。

    1、字符输入流抽象类:Reader类

    该类定义了操作字符输入流的方法,如下表:

    返回方法说明booleanready()判断此数据流是否准备好

    intread()读入一个字符,若已读到流结尾,则返回值为-1

    intread(char[ ])读取一些字符到char[ ]数组内,并返回所读入的字符的数量,若已到达流结尾,则返回-1

    Abscract intread(char[ ] chars,int off,int len)读取一些字符到char[ ]数组下标从off开始到off+len的位置,并返回所读入的字符的数量,若已到达流结尾,则返回-1;

    voidreset()将当前输入流重新定位到最后一次mark()方法时的位置

    voidmark(int readLimit)将当前输入流中做标记,当调用reset方法时将返回到该位置,从标记位置开始,到再读入readLimit个字符为止,这个标记都维持有效

    booleanmarkSupported测试当前输入流是否支持mark()方法和reset()方法。只要有一个方法不支持,则返回-1

    longskip(long n)跳过参数n指定的字符数量,并返回所跳过字符的数量

    Abstract voidclose()关闭字符输入流,并释放与之关联的所有资源

    2、字符输出流抽象类:Writer类

    Writer 类主要是用于解决字符输入流的类,其地位与Reader类在输入流的地位和作用是相同的,也是所有字符输出流的流类。

    Writer类的主要方法如下:

    返回方法说明

    voidwrite(char[ ] cbuf)将字符数组的数据写入字符输出流

    Abstract voidwrite(char[ ] cbuf int off ,int len)将字符数组从下标off 开始向输入流写入长度为len的数据

    voidwrite(int c )向字符输入流中写入一个字符数据

    voidwrite(String str )向输入流中写入一个字符串数据

    voidwrite(String str , int off ,int len)向输入流中写入一个字符串从off 开始长度为len的数据

    Abstract voidflush()刷新当前输出流,并强制写入所有缓冲区的字节数据

    voidclose()向输出流中写入缓冲区的数据,然后关闭当前输出流,释放所有与当前输出流相关联的系统资源

    3、文件字符输入流FileReader

    文件字符输入流与文件字节输入流的功能相似,但是传送数据的方式不一样,字节流以字节为单位传送数据,可以使文本、视频、音频、图片等。字符流以字符为单位传送数据,只能传送文本类型的数据。

    //创建字符输入流常用构造方法

    new FileReader(File file);

    new FileReader(String path);

    FileReader类读取指定磁盘文件内容的实例

    package com.io;

    import java.io.File;

    import java.io.FileReader;

    public class FileInAndOut {

    public static void main(String[] args) {

    //定义指定磁盘的文件的File对象

    File file = new File("D://word.txt");

    if(! file.exists()){

    System.out.println("对不起,不包含指定路径的文件");

    }else{

    //根据指定路径的File对象创建FileReader对象

    try {

    FileReader fr = new FileReader(file);

    char[] data = new char[23]; //定义char数组

    int length = 0;

    while((length = fr.read(data))>0){ //循环读取文件中的数据

    String str = new String(data,0,length); //根据读取文件的内容创建String 对象

    System.out.println(str); //输出读取内容

    }

    fr.close(); //关闭流

    } catch (Exception e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    }

    }

    运行结果为:

    cb391188a1e832ef5c037537137f4e08.png    

    ece47c3d8a9d1a8d293576376aba760e.png

    4、文件字符输出流FileWriter

    文件字符输出流继承了Writer类,提供了向文件输出的各种方法,数据通过文件字符输出流以字符为单位输出并保存到文件中。

    package com.io;

    /**

    * 通过给定的String类型参数的指定文件名称与路径,创建FileWriter类

    */

    import java.io.File;

    import java.io.FileReader;

    import java.io.FileWriter;

    import java.io.IOException;

    public class FileWriterDemo {

    public static void main(String[] args) {

    File file = new File("D://word2.txt"); //创建指定文件

    try {

    if(! file.exists()){

    file.createNewFile(); //如果指定文件不存在,新建文件

    }

    FileReader fr = new FileReader("D://word.txt");

    FileWriter fw = new FileWriter(file); //创建FileWriter对象

    int length = 0;

    while((length = fr.read()) != -1){ //如果没有读到文件末尾

    fw.write(length); //向文件写入数据

    }

    fr.close(); //关闭流

    fw.close();

    } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    }

    运行后创建了Word2.txt 文件,并向其中写入数据

    a7878daa494396c721dda19b641e9375.png

    IO流实战:

    1、Java IO流实现复制文件夹

    通过IO不仅可以复制文件,还可以复制文件夹,但是文件夹内,可能包含其他文件夹,因此需要对他们进行分别复制。

    package com.io;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    public class CopyFile {

    public static void main(String[] args) {

    File sourceFile = null;

    File desFile = null;

    String sourceFolder = "D://简历2";

    String copyFolder = "D://copy";

    sourceFile = new File(sourceFolder);

    if (!sourceFile.isDirectory() || !sourceFile.exists()) {

    System.out.println("源文件夹不存在!");

    } else {

    desFile = new File(copyFolder);

    desFile.mkdir();

    copy(sourceFile.listFiles(), desFile);

    System.out.println("文件夹复制成功!");

    }

    }

    /**

    * 创建copy方法,该方法接收文件数组和目标文件夹两个参数,如果目标文件夹不存在,则调用mkdir()方法创建文件夹,然后再循环中将文件数组

    * 中的每个文件对象写到目标文件夹内。

    * @param fl

    * @param file

    */

    public static void copy(File[] fl, File file) {

    if (!file.exists()) { // 如果文件夹不存在

    file.mkdir(); // 建立新的文件夹

    }

    for (int i = 0; i < fl.length; i++) {

    if (fl[i].isFile()) { // 如果是文件类型,则复制文件

    try {

    FileInputStream fis = new FileInputStream(fl[i]);

    FileOutputStream out = new FileOutputStream(new File(

    file.getPath() + File.separator + fl[i].getName()));

    int count = fis.available();

    byte[] data = new byte[count];

    if ((fis.read(data)) != -1) {

    out.write(data);

    }

    } catch (Exception e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    if (fl[i].isDirectory()) { // 如果是文件夹类型

    File des = new File(file.getPath() + File.separator

    + fl[i].getName());

    des.mkdir(); // 在目标文件夹中创建相同的文件夹

    copy(fl[i].listFiles(), des); // 递归调用方法本身

    }

    }

    }

    }

    运行本实例会将D盘中的简历文件中的内容复制到D盘的copy文件夹中,而且包含文件夹的子文件夹。

    2、Java IO流实现分行向文件中写入数据

    FileWriter类可以向文件写入字符数据,如果将FileWriter类封装到BufferWriter类的缓冲字符流中,能够实现缓冲字符输出流,并且可以通过读输出流的newLine()方法,来实现数据的分行写入。

    package com.io;

    import java.io.BufferedWriter;

    import java.io.File;

    import java.io.FileWriter;

    import java.io.IOException;

    /**

    * 创建BranchWriter类,在主方法中定义文件对象,将该对象作为参数创建BufferedWriter类实例,

    * 调用该实例的writer方法将数据写入文件中,然后 调用newLine()方法写入换行符,实现分行向文件写入数据。

    */

    public class BranchWriter {

    public static void main(String[] args) {

    String filePath = "D://BranchWriter.txt";

    File file = new File(filePath);

    try {

    if (!file.exists()) {

    file.createNewFile();

    }

    FileWriter fw = new FileWriter(file); // 创建文件输出流

    BufferedWriter bw = new BufferedWriter(fw); // 使用缓冲区数据流封装输出流

    for (int i = 0; i < 100; i++) { //循环写入100行数据

    bw.write("Java交互管道——IO流".toCharArray());// 写入数据到输出流

    bw.newLine(); // 写入换行符

    bw.flush(); // 刷新缓冲区

    }

    System.out.println("成功写入数据!");

    } catch (IOException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }

    }

    3、删除指定文件

    File类的delete()方法可以实现删除指定的文件,首先使用目标文件路径创建File类的实例对象,然后再调用File类的delete()方法。

    package com.io;

    import java.io.File;

    public class FileDelete {

    public static void main(String[] args) {

    String filePath = "D://word.txt";

    File file = new File(filePath);

    delFile(file);

    }

    public static void delFile(File file) {

    if (!file.exists()) {

    System.out.println("文件不存在!");

    return;

    }

    boolean rs = file.delete();

    if (rs) {

    System.out.println("文件删除成功!");

    } else {

    System.out.println("文件删除失败!");

    }

    }

    }

    展开全文
  • Java 文件输出流.pdf

    千次阅读 2021-03-17 19:37:09
    Java 文件输出流Java ⽂件输出流Java IO教程 - Java⽂件输出流创建输出流要写⼊⽂件,我们需要创建⼀个FileOutputStream类的对象,它将表⽰输出流。// Create a file output streamString destFile = "test.txt";...

    Java 文件输出流

    Java ⽂件输出流

    Java IO教程 - Java⽂件输出流

    创建输出流

    要写⼊⽂件,我们需要创建⼀个FileOutputStream类的对象,它将表⽰输出流。

    // Create a file output stream

    String destFile = "test.txt";

    FileOutputStream fos = new FileOutputStream(destFile);

    当写⼊⽂件时,如果⽂件不存 ,Java会尝试创建⽂件。我们必须准备好处理这个异

    常,将代码放 try-catch块中,如下所⽰:

    try {

    FileOutputStream fos = new FileOutputStream(sr File);

    } at h (FileNotFoundEx eption e){

    // Error handling ode goes here

    }

    如果⽂件包含数据,数据将被擦除。为了保留现有数据并将新数据附加到⽂件,我们

    需要使⽤FileOutputStream类的另⼀个构造函数,它接受⼀个布尔标志,⽤于将新数据

    附加到⽂件。

    要将数据附加到⽂件,请 第⼆个参数中传递true,使⽤以下代码。

    FileOutputStream fos = new FileOutputStream(destFile, true);

    写数据

    FileOutputStream类有⼀个重载的write()⽅法将数据写⼊⽂件。我们可以使⽤不同版本

    的⽅法⼀次写⼊⼀个字节或多个字节。

    通常,我们使⽤FileOutputStream写⼊⼆进制数据。

    要向输出流中写⼊诸如“Hello"的字符串,请将字符串转换为字节。

    String类有⼀个getBytes()⽅法,该⽅法返回表⽰字符串的字节数组。我们给

    FileOutputStream写⼀个字符串如下:

    String text = "Hello";

    byte[] textBytes = text.getBytes();

    fos.write(textBytes);

    要插⼊⼀个新⾏,使⽤line.separator系统变量如下。

    String lineSeparator = System.getProperty("line.separator");

    fos.write(lineSeparator.getBytes());

    我们需要使⽤lush()⽅法刷新输出流。

    fos.flush();

    刷新输出流指⽰如果任何写⼊的字节被缓冲,则它们可以被写⼊数据宿。

    关闭输出流类似于关闭输⼊流。我们需要使⽤close()⽅法关闭输出流。

    // Close the output stream

    fos. lose();

    close()⽅法可能抛出⼀个IOException异常。如果我们希望⾃动关闭tit,请使⽤try-with-

    resources创建输出流。

    以下代码显⽰如何将字节写⼊⽂件输出流。

    import java.io.File;

    import java.io.FileOutputStream;

    publi lass Main {

    publi stati void main(String[] args) {

    String destFile = "lu i2.txt";

    // Get the line separator for the urrent platform

    String lineSeparator = System.getProperty("line.separator");

    String line1 = "test";

    String line2 = "test1";

    String line3 = "test2";

    String line4 = "test3";

    try (FileOutputStream fos = new FileOutputStream(destFile)) {

    fos.write(line1.getBytes());

    fos.write(lineSeparator.getBytes());

    fos.write(line2.getBytes());

    fos.write(lineSeparator.getBytes());

    fos.write(line3.getBytes());

    fos.wri

    展开全文
  • Java输出文件到本地(输出流

    千次阅读 2021-03-05 22:08:58
    import java.io.File;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.OutputStream;import java.io.Writer;public class Hello {public static void main(String[] arg...

    package cn.buaa;

    import java.io.File;

    import java.io.FileOutputStream;

    import java.io.FileWriter;

    import java.io.OutputStream;

    import java.io.Writer;

    public class Hello {

    public static void main(String[] args) throws Exception {

    //字节流

    byteOutStream();

    //字符流 (输出流中含有中文时使用字符流)

    charOutStream();

    }

    public static void charOutStream() throws Exception{

    // 1:利用File类找到要操作的对象

    File file = new File("D:" + File.separator + "demo" + File.separator + "test.txt");

    if(!file.getParentFile().exists()){

    file.getParentFile().mkdirs();

    }

    //2:准备输出流

    Writer out = new FileWriter(file);

    out.write("测试字符流, 哈哈");

    out.close();

    }

    public static void byteOutStream() throws Exception {

    //1:使用File类创建一个要操作的文件路径

    File file = new File("D:" + File.separator + "demo" + File.separator + "test.txt");

    if(!file.getParentFile().exists()){ //如果文件的目录不存在

    file.getParentFile().mkdirs(); //创建目录

    }

    //2: 实例化OutputString 对象

    OutputStream output = new FileOutputStream(file);

    //3: 准备好实现内容的输出

    String msg = "HelloWorld";

    //将字符串变为字节数组

    byte data[] = msg.getBytes();

    output.write(data);

    //4: 资源操作的最后必须关闭

    output.close();

    }

    }

    Java修炼——文件字节输入输出流复制和缓冲流复制

    一:文件字节输入输出流复制 首先明确数据源和目的文件,然后就是"中转站",最后就是关闭 package com.bjsxt.ioproject; import java.io.Fi ...

    Java 输出文件通过 BufferedWriter&period;newline&lpar;&rpar; 方法换行

    最近项目中需要导出文件,其实导出文件是一个挺简单的事情.但是却遇到了很奇怪的问题. 首先导出到文件需要用到 BufferedWriter.而换行则是通过 bw.newline() 方法,问题将出在 n ...

    Linux服务器Java输出文件中文乱码

    使用下面语句查看编码: String encoding = System.getProperty("file.encoding");结果输出:ANSI_X3.4-1968,从而导致 ...

    Java 从服务器下载文件到本地(页面、后台、配置都有)

    先来看实现效果: 有一个链接如下: 点击链接下载文件:  第一种方法:Servlet实现 一.HTML页面部分: 1.HTML页面中的一个链接

    展开全文
  • java输入、输出流的简单入门

    万次阅读 多人点赞 2019-03-30 19:17:24
    另一方面,程序在处理数据后,可能需要将处理的结果写入到永久的存储媒介中或传送给其他的应用程序,这就需要使用输出流。 通俗的解释就是,以我当前程序为主,我要和其他的事物进行交流,所以我必须要搭一个通道...
  • Java实现文件写入——IO流(输入输出流详解)

    万次阅读 多人点赞 2017-09-09 20:43:12
    流是一组有序的数据序列,根据操作的类型,分为输入流和输出流。 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;程序从输入流读取数据,向输出流写入数据。Java是面向对象的程序语言,每一个数据流都是一个...
  • Java 输入、输出流

    千次阅读 多人点赞 2021-04-15 17:02:47
    Java 输入、输出流(I/O流)1 File类1.1 文件的属性1.2 目录2 文件字节输入、输出流二级目录三级目录3 文件字符输入、输出流二级目录三级目录4 缓冲流二级目录三级目录 概述:输入、输出流提供一条通道程序,可以...
  • java用IO流创建zip压缩文件

    千次阅读 2019-01-28 11:41:58
    工具方法: /** * 新建文件(.zip) ... * @param output 输出流 * @param charset 编码 */ public static void zipStringToOutputStream(Map&lt;String, byte[]&gt; datas, Ou...
  • Java创建文件

    千次阅读 2021-03-06 17:13:39
    创建文件是一种非常常见的IO操作,在这一小节中我们将学习如何在java创建文件的几个方法。在java创建文件有三种流行的方法,下面将一个一个地来学习。方法一:使用File.createNewFile()方法java.io.File类可用于...
  • Java读取文件操作, 输入输出流的用法:FileInputStream、FileOutputStream类
  • Java 文件输入字节输出字节

    千次阅读 2019-05-09 19:24:25
    文件输入字节输出字节FileInputStream 类和 FileOutputStream 类 ,他们创建的相应对象可以以字节为单位完成对文件输出和输入操作。 FileInputStream 常用的构造方法 构造方法 说明 publ...
  • java输入输出流读取本地文件

    千次阅读 2019-04-30 15:05:23
    读取计算机本地文件 fileName :C:/dev/json.txt public static String getJsonString(String fileName) { StringBuffer sb = new StringBuffer(); FileReader fr = null; try { fr = new...
  • java创建文件_Java创建文件

    千次阅读 2020-07-19 20:44:52
    java创建新文件Creating a file is a very common IO operation. Today we will look into different ways to create a file in java. 创建文件是非常常见的IO操作。... Java创建文件 (Java create file) There a...
  • java重定向输出流文件(从文件到输入流) 如何重定向呢?先看看以下代码 public class Run{ int age; String name; String sex; public void go(){ age = 0; name = &quot;未知&quot;; sex = &...
  • Java_文件读写 File File: 作为java中的文件类,当我们需要操作文件的时候,通常会new一个file对象,并让其得到所需要操作得文件路径,让其”读取成为“这个文件,然后在其之上调用方法进行操作。 构造方法: File...
  • 1.编写应用程序,使用文件输入输出流实现文件的复制,被拷贝...2.编写应用程序,创建一个文件输出流,向文件中分别写入以下类型数据:int、double和字符串,然后创建一个文件输入流,将文件中写入的数据显示在屏幕上。
  • Java实现文件写入——IO

    千次阅读 2021-02-12 14:52:34
    流是一组有序的数据序列,根据操作的类型,分为输入流和输出流。程序从输入流读取数据,向输出流写入数据。Java是面向对象的程序语言,每一个数据流都是一个对象,它们提供了各种支持“读入”与“写入”操作的流类。...
  • 流是一组有序的数据序列,根据操作的类型,可分为输入流和输出流两种。I/O(Input/Output,输入/输出)流提供了一条通道程序,可以使用这条通道把源中的字节序列送到目的地。虽然 I/O 流通常与磁盘文件存取有关,...
  • import java.io.*; import java.util.Calendar; public class TestTxt { @org.junit.Test public void test2(){ long starttime=System.currentTimeMillis(); try { File file1=new File("d:\\t
  • Java网络编程(输出流 OutputStream)

    千次阅读 2018-09-30 18:45:39
    网络程序所做的很大一部分工作都是简单的输入输出: 将数据字节从一个系统移动到另一个系统。字节就是字节。在很大程度上讲: 读取服务器发送给你的数据与读取文件并没有什么不同。...输入流读取文件输出流...
  • Java输入输出流详解

    万次阅读 多人点赞 2017-06-17 21:15:21
    通过数据、序列化和文件系统提供系统输入和输出。...在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出文件的操作,网络上的数据,字符串流,对象,zip文件流。 1.1
  • 方法一:自己写个输出流方法 直接上代码: public void writeToFile(String data){ byte[] sourceByte = data.getBytes(); String path = &quot;D:/file/&quot;; String fileName = &quot;test.txt...
  • java IO——创建文件并修改文件名

    千次阅读 2019-05-16 11:00:07
    package ... import java.io.File; import java.io.IOException; public class RenameTo { public static void main(String[] args) throws IOException { File f=new File("D:\\nte.txt"); i...
  • java中通过输入输出流下载文件

    万次阅读 2018-09-08 17:47:33
    1.首先在web-inf下创建文件夹,向其中加入所要下载的东西,本文以pdf格式的java编程思想为例 2. 在index.jsp中创建一个简单的a标签,指向DownLoadServlets 3. 创建对应的Servlet,并在dopost()方法中写如下...
  • 3.在指定目录下创建单个文件。 4.指定目录下创建多个临时文件。 二、字节 1.生成ZIP压缩文件 2.解压缩zip文件 3.生成Excel文件 4.读取excel文件 5.生成PDF文件 6.读取PDF文件中的内容 7.利用poi读取Word文件中的...
  • 切记: 读写文件一定要及时关闭输入输出流 项目中,用到将rtf文档上传后修改一个更新标记为0未更新,另外一个程序将文档上传到LED屏上面,LED程序检测到更新标记为未更新时将状态投到LED上面,并将状态更新为1...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 693,872
精华内容 277,548
关键字:

java创建文件输出流

java 订阅