මම ගොනුවක් සාදා ජාවා හි එයට ලියන්නේ කෙසේද?


1391

ජාවා හි (පෙළ) ගොනුවක් සෑදීමට සහ ලිවීමට ඇති සරලම ක්‍රමය කුමක්ද?

Answers:


1745

පහත දැක්වෙන එක් එක් කේත සාම්පල විසි කළ හැකි බව සලකන්න IOException. උත්සාහ කිරීම / අල්ලා ගැනීම / අවසානයේ කුට්ටි සංක්ෂිප්තව ඉවත් කර ඇත. ව්‍යතිරේක හැසිරවීම පිළිබඳ තොරතුරු සඳහා මෙම නිබන්ධනය බලන්න .

පහත දැක්වෙන එක් එක් කේත සාම්පල ගොනුව දැනටමත් තිබේ නම් එය නැවත ලියයි

පෙළ ගොනුවක් නිර්මාණය කිරීම:

PrintWriter writer = new PrintWriter("the-file-name.txt", "UTF-8");
writer.println("The first line");
writer.println("The second line");
writer.close();

ද්විමය ගොනුවක් නිර්මාණය කිරීම:

byte data[] = ...
FileOutputStream out = new FileOutputStream("the-file-name");
out.write(data);
out.close();

ජාවා 7+ පරිශීලකයින්ට Filesලිපිගොනු ලිවීමට පන්තිය භාවිතා කළ හැකිය :

පෙළ ගොනුවක් නිර්මාණය කිරීම:

List<String> lines = Arrays.asList("The first line", "The second line");
Path file = Paths.get("the-file-name.txt");
Files.write(file, lines, StandardCharsets.UTF_8);
//Files.write(file, lines, StandardCharsets.UTF_8, StandardOpenOption.APPEND);

ද්විමය ගොනුවක් නිර්මාණය කිරීම:

byte data[] = ...
Path file = Paths.get("the-file-name");
Files.write(file, data);
//Files.write(file, data, StandardOpenOption.APPEND);

59
ගොනුව දැනටමත් තිබේ නම් PrintWriter විසින් ගොනු ප්‍රමාණය බිංදුවට කපා දමනු ඇත
Covar

34
PrintWriter භාවිතා කළ හැකිය (බොහෝ විට), නමුත් (සංකල්පමය වශයෙන්) කාර්යය සඳහා නිවැරදි පන්තිය නොවේ. "PrintWriter prints formatted representations of objects to a text-output stream. "ලියකියවිලි වලින් : බොෂෝගේ පිළිතුර වඩාත් නිවැරදියි, එය අවුල් සහගත බවක් පෙනුනත් (ඔබට එය සෑම විටම යම් උපයෝගීතා ක්‍රමයකින් ඔතා ගත හැකිය).
ලියොන්බ්ලෝයි

14
අප මාර්ගය ලබා දී නොමැති බැවින් යෙදුම ගොඩනඟා වෙනත් පරිගණකයක භාවිතා කිරීමෙන් පසු පෙළ ගොනුව නිර්මාණය වන්නේ කොතැනින්ද?
මාලන් අබේකූන්

13
ArMarlonAbeykoon හොඳ ප්‍රශ්නයක්. පිළිතුර නම් එය වැඩ කරන නාමාවලියෙහි පෙළ ගොනුව නිර්මාණය කරනු ඇති බවයි. වැඩ කරන නාමාවලිය යනු ඔබ ඔබේ වැඩසටහන ක්‍රියාත්මක කරන ඕනෑම නාමාවලියකි. උදාහරණයක් ලෙස, ඔබ ඔබේ වැඩසටහන විධාන රේඛාවෙන් ක්‍රියාත්මක කරන්නේ නම්, වැඩකරන ඩිරෙක්ටරිය ඒ මොහොතේ ඔබ "සිටින" ඕනෑම ඩිරෙක්ටරියක් වනු ඇත (ලිනක්ස් හි, වර්තමාන වැඩ කරන ඩිරෙක්ටරිය බැලීමට "pwd" ටයිප් කරන්න). නැතහොත්, මගේ ඩෙස්ක්ටොප් එකේ JAR ගොනුවක් ක්‍රියාත්මක කිරීමට එය දෙවරක් ක්ලික් කළහොත්, වැඩ කරන නාමාවලිය ඩෙස්ක්ටොප් එක වනු ඇත.
මයිකල්

8
writer.close()අවසාන කොටසක විය යුතුය
තියරි

417

ජාවා 7 සහ ඊට ඉහළින්:

try (Writer writer = new BufferedWriter(new OutputStreamWriter(
              new FileOutputStream("filename.txt"), "utf-8"))) {
   writer.write("something");
}

ඒ සඳහා ප්‍රයෝජනවත් උපයෝගීතා ඇත:

ඔබට a භාවිතා කළ හැකි බව සලකන්න FileWriter, නමුත් එය පෙරනිමි කේතන ක්‍රමයක් භාවිතා කරයි, එය බොහෝ විට නරක අදහසකි - කේතීකරණය පැහැදිලිව සඳහන් කිරීම වඩාත් සුදුසුය.

පහත දැක්වෙන්නේ ජාවා 7 ට පෙර මුල් පිටපතයි


Writer writer = null;

try {
    writer = new BufferedWriter(new OutputStreamWriter(
          new FileOutputStream("filename.txt"), "utf-8"));
    writer.write("Something");
} catch (IOException ex) {
    // Report
} finally {
   try {writer.close();} catch (Exception ex) {/*ignore*/}
}

මෙයද බලන්න: ලිපිගොනු කියවීම, ලිවීම සහ නිර්මාණය කිරීම (NIO2 ඇතුළත් වේ).


5
@leonbloy මෙය පැරණි අදහස් දැක්වීමක් බව මම දනිමි, නමුත් යමෙකු මෙය දුටුවහොත් "සැමවිටම ප්‍රයෝජනවත්" නොවන්නේ මන්දැයි පැහැදිලි කිරීමට ඔබ සිතනවාද? අවම වශයෙන් මෙහි එය පවසන්නේ "ඉහළ කාර්යක්ෂම" docs.oracle.com/javase/1.5.0/docs/api/java/io/…
ජුවාන්

14
ලේඛකයාට ලිවීමේ () ක්‍රමයක් නොමැති බව පෙනේ. එහි ඇත්තේ ලිවීම පමණි ()
යැන්කි විස්කි

10
ඔබ ලේඛකයාගේ වර්ගය BufferedWriter ලෙස වෙනස් කළහොත් (එය ඇත්ත වශයෙන්ම), ඔබට writer.newLine () භාවිතා කළ හැකිය
Niek

4
අවසාන වශයෙන් උත්සාහ කිරීම / අල්ලා ගැනීම නිවැරදි බවක් නොපෙනේ. එයට හේතුව මම දනිමි, නමුත් එය කේත සුවඳක් සේ පෙනේ.
ashes999

4
Re ට්රෙන්ගෝට් එය කරයි. ඇමතුම් close()වෙනත් ඕනෑම වටේ එතිලා ඕනෑම විෂය ධාරාව මත මෙන්ම සියලු අභ්යන්තර ධාරා වසා ඇත.
අරමුදල් මොනිකාගේ නඩුව

132

ඔබට දැනටමත් ගොනුවට ලිවීමට අවශ්‍ය අන්තර්ගතය තිබේ නම් (සහ පියාසර කිරීමෙන් උත්පාදනය නොවේ), java.nio.file.Filesස්වදේශීය I / O හි කොටසක් ලෙස ජාවා 7 හි එකතු කිරීම ඔබේ අරමුණු සාක්ෂාත් කර ගැනීම සඳහා සරලම හා කාර්යක්ෂම ක්‍රමය සපයයි.

මූලික වශයෙන් ගොනුවක් සෑදීම සහ ලිවීම එක් පේළියක් පමණි, එපමනක් නොව එක් සරල ක්‍රම ඇමතුමක් !

එය භාවිතා කළ හැකි ආකාරය පෙන්වීමට පහත උදාහරණය විවිධ ගොනු 6 ක් නිර්මාණය කර ලියයි:

Charset utf8 = StandardCharsets.UTF_8;
List<String> lines = Arrays.asList("1st line", "2nd line");
byte[] data = {1, 2, 3, 4, 5};

try {
    Files.write(Paths.get("file1.bin"), data);
    Files.write(Paths.get("file2.bin"), data,
            StandardOpenOption.CREATE, StandardOpenOption.APPEND);
    Files.write(Paths.get("file3.txt"), "content".getBytes());
    Files.write(Paths.get("file4.txt"), "content".getBytes(utf8));
    Files.write(Paths.get("file5.txt"), lines, utf8);
    Files.write(Paths.get("file6.txt"), lines, utf8,
            StandardOpenOption.CREATE, StandardOpenOption.APPEND);
} catch (IOException e) {
    e.printStackTrace();
}

හොඳට කලා. මම file5 සහ file6 උදාහරණයට කැමතියි. ගොනුව 6 පරීක්ෂා කිරීම සඳහා ඔබ වැඩසටහන දෙවරක් ක්‍රියාත්මක කරන බවට වග බලා ගන්න, එවිට එය නැවත පේළි එකතු කරන බව ඔබට පෙනෙනු ඇත.
tazboy

78
public class Program {
    public static void main(String[] args) {
        String text = "Hello world";
        BufferedWriter output = null;
        try {
            File file = new File("example.txt");
            output = new BufferedWriter(new FileWriter(file));
            output.write(text);
        } catch ( IOException e ) {
            e.printStackTrace();
        } finally {
          if ( output != null ) {
            output.close();
          }
        }
    }
}

18
Output.close () අවසාන කොටසකට දැමීම වඩා හොඳ නොවේද?
qed

7
මෙහි කේතය කිසි විටෙකත් මෙහි පිළිතුරක් විය නොහැක. ඔබ පැහැදිලි කළ යුතුයි.
ලෝර්න් හි මාක්විස්

7
ඇත්ත වශයෙන්ම මෙය සම්පාදනය නොවනු ඇත, output.close()IOException විසි කරයි
බොබ්

43

ගොනුවක් සෑදීමට හෝ නැවත ලිවීමට කුඩා උදාහරණ වැඩසටහනක් මෙන්න. එය දිගු අනුවාදය බැවින් එය වඩාත් පහසුවෙන් තේරුම් ගත හැකිය.

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;

public class writer {
    public void writing() {
        try {
            //Whatever the file path is.
            File statText = new File("E:/Java/Reference/bin/images/statsTest.txt");
            FileOutputStream is = new FileOutputStream(statText);
            OutputStreamWriter osw = new OutputStreamWriter(is);    
            Writer w = new BufferedWriter(osw);
            w.write("POTATO!!!");
            w.close();
        } catch (IOException e) {
            System.err.println("Problem writing to the file statsTest.txt");
        }
    }

    public static void main(String[]args) {
        writer write = new writer();
        write.writing();
    }
}

40

ජාවා හි ගොනුවක් සෑදීමට සහ ලිවීමට ඉතා සරල ක්‍රමයක්:

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;

public class CreateFiles {

    public static void main(String[] args) {
        try{
            // Create new file
            String content = "This is the content to write into create file";
            String path="D:\\a\\hi.txt";
            File file = new File(path);

            // If file doesn't exists, then create it
            if (!file.exists()) {
                file.createNewFile();
            }

            FileWriter fw = new FileWriter(file.getAbsoluteFile());
            BufferedWriter bw = new BufferedWriter(fw);

            // Write in file
            bw.write(content);

            // Close connection
            bw.close();
        }
        catch(Exception e){
            System.out.println(e);
        }
    }
}

7
මෙහි File.exists()/createNewFile()කේතය අර්ථ විරහිත මෙන්ම නාස්තියකි. මෙහෙයුම් පද්ධතිය දැනටමත් නිර්මාණය කර ඇති විට හරියටම එකම දේ කළ යුතුය new FileWriter(). ඔබ ඒ සියල්ල දෙවරක් සිදුවීමට බල කරයි.
ලෝර්න් හි මාක්විස්

1
File.exists () / createNewFile () තේරුමක් නැති හා නාස්තිකාර නොවේ. ගොනුව දැනටමත් තිබේද නැද්ද යන්න මත පදනම්ව විවිධ කේත ක්‍රියාත්මක කිරීමට ක්‍රමයක් මම සොයමින් සිටියෙමි. මෙය ඉතා ප්‍රයෝජනවත් විය.
කිර්ස්ටි බැලන්ස්

2
මම මෙම ක්‍රමය භාවිතා කළ නමුත් එය සෑම විටම ගොනුව නැවත ලියන බව ඔබ දැනගත යුතුය. ගොනුව තිබේ නම් එය එකතු කිරීමට ඔබට අවශ්‍ය නම්, ඔබ FileWriterපහත පරිදි new FileWriter(file.getAbsoluteFile(),true)
ක්ෂණිකව කළ යුතුය

2
එය දෙකම නිරර්ථක හා මා සඳහන් කරන හේතුව නිසා, නාස්තිකාර. ඔබ ඇති කරනවා දෙකක් පැවැත්ම පරීක්ෂණ, දෙකක් නිර්මාණ හා එය මකා: ඔබ සිටින නොවන ගොනු මේවන විටත් නැද්ද යන්න මත පදනම්ව මෙතන විවිධ කේතය ක්රියාත්මක.
ලෝර්න් හි මාක්විස්

35

භාවිත:

try (Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("myFile.txt"), StandardCharsets.UTF_8))) {
    writer.write("text to write");
} 
catch (IOException ex) {
    // Handle me
}  

භාවිතා කිරීම try()ප්‍රවාහය ස්වයංක්‍රීයව වසා දමයි. මෙම අනුවාදය කෙටි, වේගවත් (ස්වාරක්ෂක) වන අතර කේතන තේරීම සක්‍රීය කරයි.

මෙම අංගය ජාවා 7 හි හඳුන්වා දෙන ලදී.


5
මෙය ජාවා 7 අංගයක් බව සැලකිල්ලට ගත යුතුය, එබැවින් ජාවා හි පෙර සංස්කරණ වල ක්‍රියා නොකරනු ඇත.
ඩෑන් පන්සල

3
කෙනෙකුට StandardCharsets.UTF_8"utf-8" නූල වෙනුවට "නියතය" භාවිතා කළ හැකිය (මෙය යතුරු ලියන දෝෂ වලින් වළක්වයි) ...new OutputStreamWriter(new FileOutputStream("myFile.txt"), StandardCharsets.UTF_8)...- java.nio.charset.StandardCharsetsජාවා 7 හි හඳුන්වා දී ඇත
රැල්ෆ්

21

මෙන්න අපි පෙළ ගොනුවකට නූලක් ඇතුළත් කරමු:

String content = "This is the content to write into a file";
File file = new File("filename.txt");
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content);
bw.close(); // Be sure to close BufferedWriter

අපට පහසුවෙන් නව ගොනුවක් සාදා එයට අන්තර්ගතය එක් කළ හැකිය.


FileWriter වසා දැමීම ගැන සැලකිලිමත් වන බැවින් BufferedWriter වසා දැමීම ප්‍රමාණවත් බව සලකන්න.
rbaleksandar

18

ඊවාල්ඩ් (සූර්යයා සහ අයිබීඑම් යන දෙකින්ම, සහ මේවා තාක්‍ෂණිකව වඩාත්ම පුලුල්ව පවතින ජේවීඑම්) ජාවා අනුවාද සඳහා විසඳුමක් අවශ්‍ය දැයි කතුවරයා නිශ්චිතව දක්වා නොමැති හෙයින්, සහ බොහෝ දෙනා පිළිතුරු දී ඇති බව පෙනේ කතුවරයාගේ ප්‍රශ්නය එය පෙළ (ද්විමය නොවන) ගොනුවක් බව සඳහන් කිරීමට පෙර, මගේ පිළිතුර සැපයීමට මම තීරණය කර ඇත්තෙමි.


පළමුවෙන්ම, ජාවා 6 සාමාන්‍යයෙන් ජීවිතයේ අවසානය කරා ළඟා වී ඇති අතර, කතුවරයාට ඔහුට උරුම අනුකූලතාවයක් අවශ්‍ය බව සඳහන් කර නොමැති හෙයින්, මම සිතන්නේ එය ස්වයංක්‍රීයව ජාවා 7 හෝ ඊට ඉහළින් අදහස් කරන බවයි (ජාවා 7 තවමත් අයිබීඑම් විසින් ඊඕල්ඩ් කර නැත). එබැවින්, I / O නිබන්ධනය: https://docs.oracle.com/javase/tutorial/essential/io/legacy.html ගොනුව දෙස අපට නිවැරදිව බැලිය හැකිය.

ජාවා SE 7 නිකුතුවට පෙර, java.io.File පන්තිය I / O ගොනුව සඳහා භාවිතා කරන යාන්ත්‍රණය වන නමුත් එයට අඩුපාඩු කිහිපයක් තිබුණි.

  • බොහෝ ක්‍රම අසාර්ථක වූ විට ව්‍යතිරේකයන් විසි නොකළ බැවින් ප්‍රයෝජනවත් දෝෂ පණිවිඩයක් ලබා ගත නොහැකි විය. උදාහරණයක් ලෙස, ලිපිගොනු මකාදැමීම අසාර්ථක වුවහොත්, වැඩසටහනට "මකාදැමීමේ අසමත් වීමක්" ලැබෙනු ඇත, නමුත් එය ගොනුව නොපවතින නිසාද, පරිශීලකයාට අවසර නොමැතිද, නැතහොත් වෙනත් ගැටළුවක් තිබේද යන්න නොදනී.
  • නැවත නම් කිරීමේ ක්‍රමය වේදිකා හරහා අඛණ්ඩව ක්‍රියාත්මක නොවීය.
  • සංකේතාත්මක සම්බන්ධතා සඳහා සැබෑ සහයෝගයක් නොතිබුණි.
  • ගොනු අවසරයන්, ගොනු හිමිකරු සහ වෙනත් ආරක්ෂක ගුණාංග වැනි පාර-දත්ත සඳහා වැඩි සහයෝගයක් අවශ්‍ය විය. ගොනු පාර-දත්ත වලට ප්‍රවේශ වීම අකාර්යක්ෂම විය.
  • බොහෝ ගොනු ක්‍රම පරිමාණය කර නැත. සේවාදායකයක් හරහා විශාල ඩිරෙක්ටරි ලැයිස්තුවක් ඉල්ලීම නිසා එය එල්ලී යා හැක. විශාල ඩිරෙක්ටරි මගින් මතක සම්පත් ගැටළු ඇති විය හැකි අතර එමඟින් සේවාව ප්‍රතික්ෂේප වේ.
  • චක්‍රලේඛ සංකේතාත්මක සබැඳි තිබේ නම් ගොනු ගසක් පුනරාවර්තනය වී නිසි පරිදි ප්‍රතිචාර දැක්විය හැකි විශ්වාසදායක කේතයක් ලිවීමට නොහැකි විය.

හොඳයි, එය java.io.File ප්‍රතික්ෂේප කරයි. ගොනුවක් ලිවීමට / එකතු කිරීමට නොහැකි නම්, ඒ මන්දැයි ඔබට දැන ගැනීමට පවා නොහැකි වනු ඇත.


අපට නිබන්ධනය දෙස දිගටම බලා සිටිය හැකිය: https://docs.oracle.com/javase/tutorial/essential/io/file.html#common

ඔබ සතුව සියලු රේඛා තිබේ නම් ඔබ පෙළ ගොනුවට කල්තියා ලියනු ඇත (එකතු කරන්න) , නිර්දේශිත ප්‍රවේශය වන්නේ https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html# write-java.nio.file.Path-java.lang.Iterable-java.nio.charset.Charset-java.nio.file.OpenOption ...-

මෙන්න උදාහරණයක් (සරල):

Path file = ...;
List<String> linesInMemory = ...;
Files.write(file, linesInMemory, StandardCharsets.UTF_8);

තවත් උදාහරණයක් (එකතු කරන්න):

Path file = ...;
List<String> linesInMemory = ...;
Files.write(file, linesInMemory, Charset.forName("desired charset"), StandardOpenOption.CREATE, StandardOpenOption.APPEND, StandardOpenOption.WRITE);

ඔබට යන විට ගොනු අන්තර්ගතය ලිවීමට අවශ්‍ය නම් : https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#newBufferedWriter-java.nio.file.Path-java .nio.charset.Charset-java.nio.file.OpenOption ...-

සරල කළ උදාහරණය (ජාවා 8 හෝ ඊට වැඩි):

Path file = ...;
try (BufferedWriter writer = Files.newBufferedWriter(file)) {
    writer.append("Zero header: ").append('0').write("\r\n");
    [...]
}

තවත් උදාහරණයක් (එකතු කරන්න):

Path file = ...;
try (BufferedWriter writer = Files.newBufferedWriter(file, Charset.forName("desired charset"), StandardOpenOption.CREATE, StandardOpenOption.APPEND, StandardOpenOption.WRITE)) {
    writer.write("----------");
    [...]
}

මෙම ක්‍රම සඳහා කතුවරයාගේ පැත්තෙන් අවම උත්සාහයක් අවශ්‍ය වන අතර [පෙළ] ලිපිගොනු වලට ලිවීමේදී අනෙක් සියල්ලන්ටම වැඩි කැමැත්තක් දැක්විය යුතුය.


'ගොනුවක් ලිවීමට / එකතු කිරීමට නොහැකි නම්, එය නිවැරදි නොවන්නේ මන්දැයි ඔබට දැන ගැනීමට පවා නොහැකි වනු ඇත. FileNotFoundExceptionමෙහෙයුම අසමත් වූ විට විසි කරන ලද පෙළෙන් ඔබ හරියටම දැන ගනු ඇත .
ලෝර්න් හි මාක්විස්

"බොහෝ ක්‍රම අසාර්ථක වූ විට ව්‍යතිරේකයන් විසි නොකළේය, එබැවින් ප්‍රයෝජනවත් දෝෂ පණිවිඩයක් ලබා ගැනීමට නොහැකි විය. නිදසුනක් ලෙස, ගොනු මකාදැමීම අසමත් වුවහොත්, වැඩසටහනට" මකාදැමීමේ අසාර්ථකත්වය "ලැබෙනු ඇත, නමුත් එය එසේ දැයි නොදනී. ගොනුව නොපවතී, පරිශීලකයාට අවසර නොමැත, නැතහොත් වෙනත් ගැටළුවක් විය.
afk5min

මා ලියූ දේ කියවන්න. ' ගොනුවක් ලිවීමට / එකතු කිරීමට නොහැකි නම්, ඔබට ප්‍රයෝජනවත් දෝෂ පණිවිඩයක් ලබා ගැනීමට පවා නොහැකි වනු ඇත' යන්න වැරදියි, මා ප්‍රකාශ කළ හේතුව නිසා එය එසේමය. ඔබ විෂය වෙනස් කරනවා. ඔබේම විෂය.
ලෝර්න් හි මාක්විස්

සාමාන්‍ය ගොනු පද්ධති සඳහා ගොඩනගා ඇති ක්‍රියාත්මක කිරීම් මම විමසා බලමි (එය OpenJDK හි වනු ඇත, නමුත් මෙම කොටස හිමිකාර ඔරකල් ජේඩීකේ හි වෙනස් වනු ඇතැයි හෝ හිමිකාර අයිබීඑම් ජේඩීකේ හි සැලකිය යුතු ලෙස වෙනස් වනු ඇතැයි සිතීමට මට හේතුවක් නැත) සහ යාවත්කාලීන කරන්න මෙම සොයාගැනීම් මත පදනම් වූ මගේ පිළිතුර. ඔබේ අදහස් දැක්වීම අර්ථවත් කරයි - 'බොහෝ ක්‍රම' වල ගැටළු ඇති බැවින්, කතුවරයා පැහැදිලිවම කියා සිටියේ එය ඔවුන් සැලකිලිමත් වන ගොනු ක්‍රියාකාරිත්වයට ලිවීම / එකතු කිරීම පමණක් බවයි.
afk5min

එය එසේ වීමට හේතුව නම්, ඔබ අමතන කිසිදු ක්‍රමයක් සුදුසු දෝෂ පණිවිඩ අඩංගු සුදුසු ව්‍යතිරේකයන් විසි කිරීමට අසමත් වීමයි. ඔබේ ප්‍රකාශයට සහාය දක්වන ප්‍රති-නියැදියක් ඔබ සතුව ඇත්නම් එය ලබා දීම ඔබ සතු ය.
මාර්ක්විස් ඔෆ් ලෝර්න්

16

ඔබට සාපේක්ෂව වේදනා රහිත අත්දැකීමක් ලබා ගැනීමට අවශ්‍ය නම්, ඔබට වඩාත් පැහැදිලිවම පන්තිය වන Apache Commons IO පැකේජය දෙස බැලිය හැකිය .FileUtils

තෙවන පාර්ශවීය පුස්තකාල පරීක්ෂා කිරීමට කිසි විටෙකත් අමතක නොකරන්න. දිනය හැසිරවීම සඳහා ජෝඩා-වේලාව , පොදු සංගීත මෙහෙයුම් සඳහා අපාචේ කොමන්ස් ලැන්ග්StringUtils සහ ඔබේ කේතය වඩාත් කියවිය හැකි ය.

ජාවා විශිෂ්ට භාෂාවකි, නමුත් සම්මත පුස්තකාලය සමහර විට ටිකක් පහත් මට්ටමක පවතී. බලවත්, නමුත් පහත් මට්ටමේ කෙසේ වෙතත්.


1
සරලම ගොනු ලිවීමේ ක්‍රමය FileUtilsවන්නේ static void write(File file, CharSequence data). උදාහරණ භාවිතය : import org.apache.commons.io.FileUtils; FileUtils.write(new File("example.txt"), "string with data");. FileUtilswriteLinesයම් යම් ප්රශ්න ඇති, Collectionමාර්ග.
රෝරි ඕ'කේන්

13

ජාවා හි ගොනුවක් සෑදීමට සහ ලිවීමට හැකි ක්‍රම කිහිපයක් මෙන්න:

FileOutputStream භාවිතා කිරීම

try {
  File fout = new File("myOutFile.txt");
  FileOutputStream fos = new FileOutputStream(fout);
  BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
  bw.write("Write somthing to the file ...");
  bw.newLine();
  bw.close();
} catch (FileNotFoundException e){
  // File was not found
  e.printStackTrace();
} catch (IOException e) {
  // Problem when writing to the file
  e.printStackTrace();
}

FileWriter භාවිතා කිරීම

try {
  FileWriter fw = new FileWriter("myOutFile.txt");
  fw.write("Example of content");
  fw.close();
} catch (FileNotFoundException e) {
  // File not found
  e.printStackTrace();
} catch (IOException e) {
  // Error when writing to the file
  e.printStackTrace();
}

PrintWriter භාවිතා කිරීම

try {
  PrintWriter pw = new PrintWriter("myOutFile.txt");
  pw.write("Example of content");
  pw.close();
} catch (FileNotFoundException e) {
  // File not found
  e.printStackTrace();
} catch (IOException e) {
  // Error when writing to the file
  e.printStackTrace();
}

OutputStreamWriter භාවිතා කිරීම

try {
  File fout = new File("myOutFile.txt");
  FileOutputStream fos = new FileOutputStream(fout);
  OutputStreamWriter osw = new OutputStreamWriter(fos);
  osw.write("Soe content ...");
  osw.close();
} catch (FileNotFoundException e) {
  // File not found
  e.printStackTrace();
} catch (IOException e) {
  // Error when writing to the file
  e.printStackTrace();
}

වැඩිදුර විස්තර සඳහා ජාවා හි ලිපිගොනු කියවීම සහ ලිවීම පිළිබඳ නිබන්ධනය පරීක්ෂා කරන්න .


පුදුමයි… අවසාන වශයෙන් අවහිර කිරීම FileWriterහෝ OutputStreamWriterවසා දැමිය යුතු නොවේද ?
වුල්ෆ්ගැන්ග් ෂ්චර්ස්

@ වුල්ෆ්ගැන්ග්ෂියර්ස්, ඔව්, එය ඊටත් වඩා හොඳයි, මට එය කළ හැකි වන පරිදි විචල්ය ප්‍රකාශය උත්සාහක කුටියෙන් පිටත ගෙන යා යුතුය.
මෙහඩි

ස්වයංක්‍රීයව වසා දැමිය හැකි නම් පවා පිරිසිදු නම්, වාරණයෙන් පිටත විචල්‍යය ප්‍රකාශ කිරීමට අවශ්‍ය නොවන අතර ව්‍යතිරේකයක් සිදුවුවද සම්පත් ස්වයංක්‍රීයව වසා දමනු ඇතැයි මම හදුනා ගතිමි. බලන්න: docs.oracle.com/javase/tutorial/essential/exceptions/…
වුල්ෆ්ගැන්ග් ෂ්චර්ස්

මම උත්සාහයන් සමඟ සම්පත් වෙනම උදාහරණයක් ලෙස එකතු කරමි (විවිධ හැකියාවන් වෙන් කිරීමට). SOF යනු සහයෝගී වෙබ් අඩවියක් බව ඔබ දන්නවා, ඔබට අයිතියක් අවශ්‍ය නම් ඉදිරියට ගොස් පිළිතුර වෙනස් කරන්න.
මෙහඩි

12

ඔබට කිසියම් හේතුවක් නිසා නිර්මාණය කිරීමේ හා ලිවීමේ ක්‍රියාව වෙන් කිරීමට අවශ්‍ය නම්, ජාවා සමාන touchවේ

try {
   //create a file named "testfile.txt" in the current working directory
   File myFile = new File("testfile.txt");
   if ( myFile.createNewFile() ) {
      System.out.println("Success!");
   } else {
      System.out.println("Failure!");
   }
} catch ( IOException ioe ) { ioe.printStackTrace(); }

createNewFile()පැවැත්ම පරීක්ෂා කර ගොනුව පරමාණුකව නිර්මාණය කරයි. උදාහරණයක් ලෙස ගොනුව ලිවීමට පෙර ඔබ එහි නිර්මාතෘ බව සහතික කිරීමට අවශ්‍ය නම් මෙය ප්‍රයෝජනවත් වේ.


1
[ස්පර්ශය] ගොනුවේ කාලරාමුව අතුරු ආබාධයක් ලෙස යාවත්කාලීන කරයි (එය දැනටමත් තිබේ නම්). මෙයද එම අතුරු ආබාධ ඇති කරයිද?
වානර-ඉනාගෝ

Ap වානර-ඉනාගෝ: මගේ පද්ධතියේ එය නිසැකවම සිදු නොවීය (එය අසත්‍යයක් වන අතර ගොනුවට කිසිදු බලපෑමක් නැත). මා අදහස් touchකළේ සාමාන්‍ය අර්ථයෙන් නොව එහි පොදු ද්විතීයික භාවිතයෙන් දත්ත ලිවීමකින් තොරව ගොනුවක් නිර්මාණය කිරීමයි. ස්පර්ශයේ ලේඛනගත අරමුණ වන්නේ ගොනුවේ කාලරාමුව යාවත්කාලීන කිරීමයි. ගොනුව නොපවතී නම් එය නිර්මාණය කිරීම ඇත්තෙන්ම අතුරු ආබාධයකි, එය ස්විචයකින් අක්‍රිය කළ හැකිය.
මාර්ක් පීටර්ස්

වැනි හේතුවක් නිසා කුමක් ද? මෙම exists()/createNewFile()අනුපිළිවෙල වචනාර්ථයෙන් කාලය හා අවකාශය නාස්තියකි.
ලෝර්න් හි මාක්විස්

11

භාවිත:

JFileChooser c = new JFileChooser();
c.showOpenDialog(c);
File writeFile = c.getSelectedFile();
String content = "Input the data here to be written to your file";

try {
    FileWriter fw = new FileWriter(writeFile);
    BufferedWriter bw = new BufferedWriter(fw);
    bw.append(content);
    bw.append("hiiiii");
    bw.close();
    fw.close();
}
catch (Exception exc) {
   System.out.println(exc);
}

මෙය මා සොයාගත් පහසුම ක්‍රමයයි ... සියලු ගැටලු මෙහි විසඳා ඇති අතර ඇතුළත් කිරීමට අවශ්‍ය වන්නේ පෙළ පමණි
රෝහිත් ZP

11

හොඳම ක්‍රමය වන්නේ ජාවා 7 භාවිතා කිරීමයි: ජාවා 7 ගොනු පද්ධතිය සමඟ වැඩ කිරීමේ නව ක්‍රමයක් හඳුන්වා දෙයි, නව උපයෝගිතා පන්තියක් සමඟ - ගොනු. ලිපිගොනු පන්තිය භාවිතා කරමින්, අපට ගොනු සහ නාමාවලි නිර්මාණය කිරීමට, ගෙනයාමට, පිටපත් කිරීමට, මකා දැමීමට හැකිය; එය ගොනුවක් කියවීමට හා ලිවීමට ද භාවිතා කළ හැකිය.

public void saveDataInFile(String data) throws IOException {
    Path path = Paths.get(fileName);
    byte[] strToBytes = data.getBytes();

    Files.write(path, strToBytes);
}

FileChannel සමඟ ලියන්න ඔබ විශාල ලිපිගොනු සමඟ කටයුතු කරන්නේ නම්, FileChannel සම්මත IO ට වඩා වේගවත් විය හැකිය. FileChannel භාවිතා කරමින් ගොනුවකට පහත දැක්වෙන කේතය ලියන්න:

public void saveDataInFile(String data) 
  throws IOException {
    RandomAccessFile stream = new RandomAccessFile(fileName, "rw");
    FileChannel channel = stream.getChannel();
    byte[] strBytes = data.getBytes();
    ByteBuffer buffer = ByteBuffer.allocate(strBytes.length);
    buffer.put(strBytes);
    buffer.flip();
    channel.write(buffer);
    stream.close();
    channel.close();
}

DataOutputStream සමඟ ලියන්න

public void saveDataInFile(String data) throws IOException {
    FileOutputStream fos = new FileOutputStream(fileName);
    DataOutputStream outStream = new DataOutputStream(new BufferedOutputStream(fos));
    outStream.writeUTF(data);
    outStream.close();
}

FileOutputStream සමඟ ලියන්න

ගොනුවකට ද්විමය දත්ත ලිවීමට FileOutputStream භාවිතා කරන්නේ කෙසේදැයි දැන් බලමු. පහත කේතය String int බයිට් බවට පරිවර්තනය කර FileOutputStream භාවිතා කරමින් ගොනු කිරීමට බයිට් ලියයි:

public void saveDataInFile(String data) throws IOException {
    FileOutputStream outputStream = new FileOutputStream(fileName);
    byte[] strToBytes = data.getBytes();
    outputStream.write(strToBytes);

    outputStream.close();
}

PrintWriter සමඟ ලියන්න අපට ගොනුවකට ආකෘතිගත පෙළ ලිවීමට PrintWriter භාවිතා කළ හැකිය:

public void saveDataInFile() throws IOException {
    FileWriter fileWriter = new FileWriter(fileName);
    PrintWriter printWriter = new PrintWriter(fileWriter);
    printWriter.print("Some String");
    printWriter.printf("Product name is %s and its price is %d $", "iPhone", 1000);
    printWriter.close();
}

BufferedWriter සමඟ ලියන්න: නව ගොනුවකට නූල් ලිවීමට BufferedWriter භාවිතා කරන්න:

public void saveDataInFile(String data) throws IOException {
    BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));
    writer.write(data);

    writer.close();
}

පවතින ගොනුවට නූලක් එකතු කරන්න:

public void saveDataInFile(String data) throws IOException {
    BufferedWriter writer = new BufferedWriter(new FileWriter(fileName, true));
    writer.append(' ');
    writer.append(data);

    writer.close();
}

10

මම හිතන්නේ මෙය කෙටිම ක්‍රමයයි:

FileWriter fr = new FileWriter("your_file_name.txt"); // After '.' write
// your file extention (".txt" in this case)
fr.write("Things you want to write into the file"); // Warning: this will REPLACE your old file content!
fr.close();

9

පවතින ගොනුව නැවත ලිවීමකින් තොරව ගොනුවක් සෑදීමට:

System.out.println("Choose folder to create file");
JFileChooser c = new JFileChooser();
c.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
c.showOpenDialog(c);
c.getSelectedFile();
f = c.getSelectedFile(); // File f - global variable
String newfile = f + "\\hi.doc";//.txt or .doc or .html
File file = new File(newfile);

try {
    //System.out.println(f);
    boolean flag = file.createNewFile();

    if(flag == true) {
        JOptionPane.showMessageDialog(rootPane, "File created successfully");
    }
    else {
        JOptionPane.showMessageDialog(rootPane, "File already exists");
    }
    /* Or use exists() function as follows:
        if(file.exists() == true) {
            JOptionPane.showMessageDialog(rootPane, "File already exists");
        }
        else {
            JOptionPane.showMessageDialog(rootPane, "File created successfully");
        }
    */
}
catch(Exception e) {
    // Any exception handling method of your choice
}

7
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class FileWriterExample {
    public static void main(String [] args) {
        FileWriter fw= null;
        File file =null;
        try {
            file=new File("WriteFile.txt");
            if(!file.exists()) {
                file.createNewFile();
            }
            fw = new FileWriter(file);
            fw.write("This is an string written to a file");
            fw.flush();
            fw.close();
            System.out.println("File written Succesfully");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

මෙම exists()/createNewFile()අනුපිළිවෙල වචනාර්ථයෙන් කාලය හා අවකාශය නාස්තියකි.
ලෝර්න් හි මාක්විස්

7

ජාවා 7+ සඳහා උත්සාහ කිරීම වටී:

 Files.write(Paths.get("./output.txt"), "Information string herer".getBytes());

එය බලාපොරොත්තු සහගතයි ...


6
package fileoperations;
import java.io.File;
import java.io.IOException;

public class SimpleFile {
    public static void main(String[] args) throws IOException {
        File file =new File("text.txt");
        file.createNewFile();
        System.out.println("File is created");
        FileWriter writer = new FileWriter(file);

        // Writes the content to the file
        writer.write("Enter the text that you want to write"); 
        writer.flush();
        writer.close();
        System.out.println("Data is entered into file");
    }
}

මෙම exists()/createNewFile()අනුපිළිවෙල වචනාර්ථයෙන් කාලය හා අවකාශය නාස්තියකි.
ලෝර්න් හි මාක්විස්

6

මට සොයාගත හැකි සරලම ක්‍රමය:

Path sampleOutputPath = Paths.get("/tmp/testfile")
try (BufferedWriter writer = Files.newBufferedWriter(sampleOutputPath)) {
    writer.write("Hello, world!");
}

එය බොහෝ විට ක්‍රියාත්මක වන්නේ 1.7+ සඳහා පමණි.


5

එක් පේළියක් පමණි! pathසහ lineනූල් වේ

import java.nio.file.Files;
import java.nio.file.Paths;

Files.write(Paths.get(path), lines.getBytes());

Ahem, කතුවරයා පැහැදිලිවම "පෙළ" ගොනු නියම කර ඇත. පෙළ ලිපිගොනු අක්ෂර වලින් සමන්විත වේ. ද්විමය ලිපිගොනු බයිට් වලින් සමන්විත වේ. ඒ හැරුණු විට කුමක් දැයි පැහැදිලි නැත lines. එය a java.lang.Stringනම්, ඇමතීමෙන් වේදිකා පෙරනිමි කේතන ක්‍රමය getBytes()භාවිතා කරමින් බයිට් නිපදවනු ඇත , එය සාමාන්‍ය නඩුවේ එතරම් හොඳ නැත.
afk5min

5

ආදාන සහ ප්‍රතිදාන ධාරාව භාවිතා කරමින් ගොනු කියවීම සහ ලිවීම:

//Coded By Anurag Goel
//Reading And Writing Files
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;


public class WriteAFile {
    public static void main(String args[]) {
        try {
            byte array [] = {'1','a','2','b','5'};
            OutputStream os = new FileOutputStream("test.txt");
            for(int x=0; x < array.length ; x++) {
                os.write( array[x] ); // Writes the bytes
            }
            os.close();

            InputStream is = new FileInputStream("test.txt");
            int size = is.available();

            for(int i=0; i< size; i++) {
                System.out.print((char)is.read() + " ");
            }
            is.close();
        } catch(IOException e) {
            System.out.print("Exception");
        }
    }
}

5

මෙම පැකේජය ඇතුළත් කරන්න:

java.nio.file

ගොනුව ලිවීමට ඔබට මෙම කේතය භාවිතා කළ හැකිය:

Path file = ...;
byte[] buf = ...;
Files.write(file, buf);

5

ජාවා 8 හි ලිපිගොනු සහ මාර්ග භාවිතා කර සම්පත් සමඟ අත්හදා බැලීම් භාවිතා කරන්න.

import java.io.BufferedWriter;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class WriteFile{
    public static void main(String[] args) throws IOException {
        String file = "text.txt";
        System.out.println("Writing to file: " + file);
        // Files.newBufferedWriter() uses UTF-8 encoding by default
        try (BufferedWriter writer = Files.newBufferedWriter(Paths.get(file))) {
            writer.write("Java\n");
            writer.write("Python\n");
            writer.write("Clojure\n");
            writer.write("Scala\n");
            writer.write("JavaScript\n");
        } // the file will be automatically closed
    }
}

4

අපි ජාවා 7 සහ ඊට ඉහළින් භාවිතා කරන්නේ නම් සහ ගොනුවට එකතු කළ යුතු (එකතු කළ) අන්තර්ගතය දන්නේ නම් අපට NIO පැකේජයේ නව බෆර්ඩ් රයිටර් ක්‍රමය භාවිතා කළ හැකිය .

public static void main(String[] args) {
    Path FILE_PATH = Paths.get("C:/temp", "temp.txt");
    String text = "\n Welcome to Java 8";

    //Writing to the file temp.txt
    try (BufferedWriter writer = Files.newBufferedWriter(FILE_PATH, StandardCharsets.UTF_8, StandardOpenOption.APPEND)) {
        writer.write(text);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

සැලකිල්ලට ගත යුතු කරුණු කිහිපයක් තිබේ:

  1. අක්ෂර කට්ටල කේතනය කිරීම සැමවිටම හොඳ පුරුද්දක් වන අතර ඒ සඳහා අපට පන්තියේ නියතයක් ඇත StandardCharsets.
  2. try-with-resourceඋත්සාහයෙන් පසු සම්පත් ස්වයංක්‍රීයව වසා ඇති ප්‍රකාශයක් කේතය භාවිතා කරයි .

OP ඉල්ලා නොසිටි නමුත් අපට නිශ්චිත මූල පදයක් ඇති රේඛා සෙවීමට අවශ්‍ය නම් උදා. confidentialඅපට ජාවා හි ධාරාව API භාවිතා කළ හැකිය:

//Reading from the file the first line which contains word "confidential"
try {
    Stream<String> lines = Files.lines(FILE_PATH);
    Optional<String> containsJava = lines.filter(l->l.contains("confidential")).findFirst();
    if(containsJava.isPresent()){
        System.out.println(containsJava.get());
    }
} catch (IOException e) {
    e.printStackTrace();
}

4

වැනි සරල ක්‍රම කිහිපයක් තිබේ:

File file = new File("filename.txt");
PrintWriter pw = new PrintWriter(file);

pw.write("The world I'm coming");
pw.close();

String write = "Hello World!";

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

fw.write(write);

fw.close();

bwභාවිතා නොකෙරේ.
ලෝර්න් හි මාක්විස්

නව අන්තර්ගතයන් සමඟ ගොනුව නැවත ලිවීමේ ලක්ෂ්‍යය සඳහන් නොවේ.
ලෝර්න් හි මාක්විස්

4

පද්ධති දේපලක් භාවිතා කර ඔබට තාවකාලික ගොනුවක් පවා සෑදිය හැකිය, එය ඔබ භාවිතා කරන මෙහෙයුම් පද්ධතියෙන් ස්වාධීන වේ.

File file = new File(System.*getProperty*("java.io.tmpdir") +
                     System.*getProperty*("file.separator") +
                     "YourFileName.txt");

3

ගූගල් හි ගුවා පුස්තකාලය භාවිතා කරමින් අපට ගොනුවක් ඉතා පහසුවෙන් නිර්මාණය කර ලිවිය හැකිය.

package com.zetcode.writetofileex;

import com.google.common.io.Files;
import java.io.File;
import java.io.IOException;

public class WriteToFileEx {

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

        String fileName = "fruits.txt";
        File file = new File(fileName);

        String content = "banana, orange, lemon, apple, plum";

        Files.write(content.getBytes(), file);
    }
}

උදාහරණ මඟින් fruits.txtව්‍යාපෘති මූල නාමාවලියෙහි නව ගොනුවක් සාදයි .


3

JFilechooser සමඟ ගනුදෙනුකරුවන් සමඟ එකතු කිරීම කියවීම සහ ගොනු කිරීමට සුරැකීම.

private void writeFile(){

    JFileChooser fileChooser = new JFileChooser(this.PATH);
    int retValue = fileChooser.showDialog(this, "Save File");

    if (retValue == JFileChooser.APPROVE_OPTION){

        try (Writer fileWrite = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileChooser.getSelectedFile())))){

            this.customers.forEach((c) ->{
                try{
                    fileWrite.append(c.toString()).append("\n");
                }
                catch (IOException ex){
                    ex.printStackTrace();
                }
            });
        }
        catch (IOException e){
            e.printStackTrace();
        }
    }
}

3

ගොනුවක් සෑදීමට සහ එයට ලිවීමට අවම වශයෙන් ක්‍රම කිහිපයක් තිබේ:

කුඩා ගොනු (1.7)

ගොනුවකට බයිට් හෝ රේඛා ලිවීමට ඔබට එක් ලිවීමේ ක්‍රමයක් භාවිතා කළ හැකිය.

Path file = Paths.get("path-to-file");
byte[] buf = "text-to-write-to-file".getBytes();
Files.write(file, buf);

මෙම ක්‍රම මඟින් ඔබ වෙනුවෙන් ප්‍රවාහය විවෘත කිරීම සහ වැසීම වැනි බොහෝ කාර්යයන් ගැන සැලකිලිමත් වන නමුත් විශාල ගොනු හැසිරවීමට අදහස් නොකෙරේ.

ස්වාරක්ෂක ධාරාව I / O භාවිතා කරමින් විශාල ගොනුවක් ලිවීම (1.7)

මෙම java.nio.fileපැකේජය ආධාරක ධාරාව I / O භාධකයක් හැකි ස්ථර සමහර තුරම වන අවරෝධක චලනය දත්ත, චැනල් I / O.

String s = "much-larger-text-to-write-to-file";
try (BufferedWriter writer = Files.newBufferedWriter(file, StandardCharsets.UTF_8)) {
    writer.write(s, 0, s.length());
}

විශේෂයෙන් ලිවීමේ මෙහෙයුම් විශාල ප්‍රමාණයක් සම්පූර්ණ කිරීමේදී එහි කාර්යක්ෂම ක්‍රියාකාරිත්වය හේතුවෙන් මෙම ප්‍රවේශය මනාප වේ. සෑම බයිට් එකක් සඳහාම මෙහෙයුම් පද්ධතියේ ලිවීමේ ක්‍රමවේදය ඇමතීමට අවශ්‍ය නොවන බැවින්, ආරක්ෂිත මෙහෙයුම් වලට මෙම බලපෑම ඇත, මිල අධික I / O මෙහෙයුම් අඩු කරයි.

නිමැවුම් ධාරාවක් සහිත ගොනුවක් පිටපත් කිරීමට (සහ නව එකක් සෑදීමට) NIO API භාවිතා කිරීම (1.7)

Path oldFile = Paths.get("existing-file-path");
Path newFile = Paths.get("new-file-path");
try (OutputStream os = new FileOutputStream(newFile.toFile())) {
    Files.copy(oldFile, os);
}

ආදාන ප්‍රවාහයක සිට ගොනුවකට සියලුම බයිට් පිටපත් කිරීමට ඉඩ දෙන අතිරේක ක්‍රම ද ඇත.

FileWriter (පෙළ) (<1.7)

කෙලින්ම ගොනුවට ලියයි (අඩු කාර්ය සාධනය) සහ එය භාවිතා කළ යුත්තේ ලිවීම් ගණන අඩු වූ විට පමණි. ගොනුවකට අක්ෂර-නැඹුරු දත්ත ලිවීමට භාවිතා කරයි.

String s= "some-text";
FileWriter fileWriter = new FileWriter("C:\\path\\to\\file\\file.txt");
fileWriter.write(fileContent);
fileWriter.close();

FileOutputStream (ද්විමය) (<1.7)

FileOutputStream යනු රූප දත්ත වැනි අමු බයිට් වල ධාරාවන් ලිවීම සඳහා ය.

byte data[] = "binary-to-write-to-file".getBytes();
FileOutputStream out = new FileOutputStream("file-name");
out.write(data);
out.close();

මෙම ප්‍රවේශයත් සමඟ වරකට එක බයිට් එකක් ලිවීමට වඩා සෑම විටම බයිට් පෙළක් ලිවීමට සලකා බැලිය යුතුය. වේගවත් කිරීම තරමක් වැදගත් විය හැකිය - 10 x දක්වා හෝ ඊට වැඩි. එබැවින් write(byte[])හැකි සෑම විටම ක්රම භාවිතා කිරීම රෙකමදාරු කරනු ලැබේ .

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.