Страница 3 из 8
Re: Урок 75. Хранение данных. Работа с файлами.
Добавлено: 26 апр 2013, 13:17
KamiSempai
Судя по документации этим должен заниматься
DocumentBuilder.
Очевидно, документ можно получить следующим способом:
[syntax=java]Document doc = DocumentBuilder.parse(openFileInput(Splash.selectedFromList)));[/syntax]
PS: Можно по подробнее, что за Document и где его можно использовать?
Re: Урок 75. Хранение данных. Работа с файлами.
Добавлено: 13 май 2013, 16:01
grecd
Кто нибудь сталкивался с Диалогом для сохранения файла? Чтобы пользователь ввел имя файла и выбрал где сохранить файл.
Re: Урок 75. Хранение данных. Работа с файлами.
Добавлено: 13 май 2013, 16:27
Foenix
да, в сети полно примеров диалогов открытия файла или папки (что требуется в этом случае).
Re: Урок 75. Хранение данных. Работа с файлами.
Добавлено: 15 май 2013, 09:43
grecd
Кто нибудь пробовал
https://github.com/twig/Android-File-Dialog ?
к сожалению нету примеров использования
Re: Урок 75. Хранение данных. Работа с файлами.
Добавлено: 15 май 2013, 13:32
Foenix
а что мешает попробовать?
Re: Урок 75. Хранение данных. Работа с файлами.
Добавлено: 15 май 2013, 19:18
grecd
Foenix писал(а):а что мешает попробовать?
попробовал, не могу разобраться как вызывать
Re: Урок 75. Хранение данных. Работа с файлами.
Добавлено: 15 май 2013, 19:25
Foenix
если будет актуально чуть позже напишу чем я пользовалась, я просто не с того компа сейчас.
Re: Урок 75. Хранение данных. Работа с файлами.
Добавлено: 06 июн 2013, 08:00
Z11
v_grechka писал(а):Для того, чтобы побороть кодировку можно испоьзовать такую конструкцию
Код: Выделить всё
FileInputStream fis = new FileInputStream(sdFile);
BufferedReader br = new BufferedReader(new InputStreamReader(fis, "windows-1251"));
вместо
Код: Выделить всё
BufferedReader br = new BufferedReader(new FileReader(sdFile));
Помогите начинающему
С помощью вышеуказаного кода получилось прочитать файл созданный в кодировке "windows-1251".
Подскажите аналогичный код чтобы записать файл в кодировке "windows-1251"
Записать файл в utf-8 получилось.
Re: Урок 75. Хранение данных. Работа с файлами.
Добавлено: 06 июн 2013, 14:24
Z11
у меня все получилось.
Вот код.
Может кому пригодится
Код: Выделить всё
static public void setContents(File aFile, String aContents)
throws FileNotFoundException, IOException {
if (aFile == null) {
throw new IllegalArgumentException("File should not be null.");
}
if (!aFile.exists()) {
throw new FileNotFoundException ("File does not exist: " + aFile);
}
if (!aFile.isFile()) {
throw new IllegalArgumentException("Should not be a directory: " + aFile);
}
if (!aFile.canWrite()) {
throw new IllegalArgumentException("File cannot be written: " + aFile);
}
OutputStream out = new FileOutputStream(aFile );
OutputStreamWriter output = new OutputStreamWriter(out, "windows-1251");
try {
output.write(aContents);
}
finally {
output.close();
}
}
Re: Урок 75. Хранение данных. Работа с файлами.
Добавлено: 14 июл 2013, 15:45
beast1983
Народ а не кто не пробовал копировать например с HTTP в File ???
например с
http://priroda.inc.ru/design/privet/privet5.gif
и сохранить в /mnt/sdcard/privet5.gif
может кто знает как решить этот пример?
Re: Урок 75. Хранение данных. Работа с файлами.
Добавлено: 14 июл 2013, 17:21
Foenix
Попробуй так
Код: Выделить всё
URL url = new URL("http://priroda.inc.ru/design/privet/privet5.gif");
File file = new File(fileName);
А затем так
Код: Выделить всё
URLConnection ucon = url.openConnection();
...
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while ((current = bis.read()) != -1) {
baf.append((byte) current);
}
А затем у тебя уже будут байтики, которые можно записать в файл
Код: Выделить всё
FileOutputStream fos = new FileOutputStream(file);
fos.write(baf.toByteArray());
fos.close();
Re: Урок 75. Хранение данных. Работа с файлами.
Добавлено: 14 июл 2013, 19:05
beast1983
Огромное спасибо,Foenix! А не знаешь как по сети копировать? например с IP 192.168.0.2 и обратно?
Но возможно логин и пароль.
просто хочу научиться копировать сегодня по тем протоколам которым можно!
(название например такое же privet5.gif)
У меня что то типа такого получилось
1) Мой пример Копирования с HTTP в SdCard
вызов из активити
Код: Выделить всё
private void Ready() {
try {
Downloader.readFileSD();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
фаил Downloader.java
Код: Выделить всё
static void readFileSD() throws IOException {
String file_url = "http://priroda.inc.ru/design/privet/privet5.gif";
doInBackground(file_url);
}
/**
* Downloading file in background thread
* */
protected static String doInBackground(String f_url) {
int count;
try {
URL url = new URL(f_url);
URLConnection conection = url.openConnection();
conection.connect();
// this will be useful so that you can show a tipical 0-100% progress bar
int lenghtOfFile = conection.getContentLength();
// download the file
InputStream input = new BufferedInputStream(url.openStream(), 8192);
// Output stream
OutputStream output = new FileOutputStream("/mnt/sdcard/programm/privet5.gif");
byte data[] = new byte[1024];
long total = 0;
while ((count = input.read(data)) != -1) {
total += count;
// writing data to file
output.write(data, 0, count);
}
// flushing output
output.flush();
// closing streams
output.close();
input.close();
} catch (Exception e) {
Log.e("Error: ", e.getMessage());
}
return null;
}
2) Мой пример Копирования внутри SdCard
в Активити вызов
Код: Выделить всё
try {
CopyFile.readFileSD();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
CopyFiles.java
Код: Выделить всё
public class CopyFile{
final static String FILENAME = "data.xml";//название файла считывания
final static String FILENAME_SD = "data.xml";//название файла записи
final static String src = "/mnt/sdcard/";//путь откуда копируем
final static String dst = "/mnt/sdcard/programm/";//путь куда копируем
static void readFileSD() throws IOException {
FileChannel source = null;
FileChannel destination = null;
source = new FileInputStream(src+FILENAME).getChannel();
destination = new FileOutputStream(dst+FILENAME_SD).getChannel();
if (destination != null && source != null) {
destination.transferFrom(source, 0, source.size());
}
if (source != null) {source.close(); }
if (destination != null) { destination.close(); }
}
}
PS извеняюсь за лишнее в файле (попозже удалю как научусь еще по сетке копировать)
Re: Урок 75. Хранение данных. Работа с файлами.
Добавлено: 26 июл 2013, 17:18
DaaarK
как работает ето я нипонил if (!copy(from + "/" + FilesList, to + "/" + FilesList)) и зачем
Re: Урок 75. Хранение данных. Работа с файлами.
Добавлено: 26 июл 2013, 18:10
Foenix
DaaarK писал(а):как работает ето я нипонил if (!copy(from + "/" + FilesList, to + "/" + FilesList)) и зачем
ето набег нипониломаторов на сайт.
Наверное это и есть "всплеск нагрузки"
Re: Урок 75. Хранение данных. Работа с файлами.
Добавлено: 14 авг 2013, 13:21
once2go
Помогите разобраться а то запутался уже...
В общем есть код для аплоад файла на сервер
файл берет со строк final
final String uploadFilePath = "/mnt/sdcard/";
final String uploadFileName = "service_lifecycle.png";
но хочу я сохранять файл statistic.xml (преференс который будет лежать в .raw папке)...но как я не химичил никак не получается сделать такую процедуру (а точнее присвоить файл пас папки рав и имя файла )
напишите плиз как правильно указать путь
Re: Урок 75. Хранение данных. Работа с файлами.
Добавлено: 23 окт 2013, 18:09
Beeyan
Здравствуйте, помогите разобраться, не удается записать файл на СД.
логи:
- 10-23 15:08:56.493: D/myLogs(14745): /mnt/sdcard/MyFiles
10-23 15:08:56.513: D/myLogs(14745): eror1 java.io.FileNotFoundException: /mnt/sdcard/MyFiles/fileSD: open failed: ENOENT (No such file or directory)
10-23 15:08:56.513: W/System.err(14745): java.io.FileNotFoundException: /mnt/sdcard/MyFiles/fileSD: open failed: ENOENT (No such file or directory)
10-23 15:08:56.592: W/System.err(14745): at libcore.io.IoBridge.open(IoBridge.java:416)
10-23 15:08:56.592: W/System.err(14745): at java.io.FileOutputStream.<init>(FileOutputStream.java:88)
10-23 15:08:56.603: W/System.err(14745): at java.io.FileOutputStream.<init>(FileOutputStream.java:73)
10-23 15:08:56.603: W/System.err(14745): at java.io.FileWriter.<init>(FileWriter.java:42)
10-23 15:08:56.603: W/System.err(14745): at com.example.p0751_files.MainActivity.writeFileSD(MainActivity.java:106)
10-23 15:08:56.603: W/System.err(14745): at com.example.p0751_files.MainActivity.onclick(MainActivity.java:45)
10-23 15:08:56.613: W/System.err(14745): at java.lang.reflect.Method.invokeNative(Native Method)
10-23 15:08:56.613: W/System.err(14745): at java.lang.reflect.Method.invoke(Method.java:511)
10-23 15:08:56.634: W/System.err(14745): at android.view.View$1.onClick(View.java:3594)
10-23 15:08:56.634: W/System.err(14745): at android.view.View.performClick(View.java:4204)
10-23 15:08:56.643: W/System.err(14745): at android.view.View$PerformClick.run(View.java:17355)
10-23 15:08:56.663: W/System.err(14745): at android.os.Handler.handleCallback(Handler.java:725)
10-23 15:08:56.663: W/System.err(14745): at android.os.Handler.dispatchMessage(Handler.java:92)
10-23 15:08:56.663: W/System.err(14745): at android.os.Looper.loop(Looper.java:137)
10-23 15:08:56.683: W/System.err(14745): at android.app.ActivityThread.main(ActivityThread.java:5041)
10-23 15:08:56.683: W/System.err(14745): at java.lang.reflect.Method.invokeNative(Native Method)
10-23 15:08:56.703: W/System.err(14745): at java.lang.reflect.Method.invoke(Method.java:511)
10-23 15:08:56.703: W/System.err(14745): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
10-23 15:08:56.713: W/System.err(14745): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
10-23 15:08:56.723: W/System.err(14745): at dalvik.system.NativeStart.main(Native Method)
10-23 15:08:56.723: W/System.err(14745): Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
10-23 15:08:56.763: W/System.err(14745): at libcore.io.Posix.open(Native Method)
10-23 15:08:56.763: W/System.err(14745): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
10-23 15:08:56.783: W/System.err(14745): at libcore.io.IoBridge.open(IoBridge.java:400)
10-23 15:08:56.783: W/System.err(14745): ... 19 more
код копия урока, разрешение в манифест добавил.
- <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.p0751_files"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:permission="android.permission.WRITE_EXTERNAL_STORAGE">
<activity
android:name="com.example.p0751_files.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
sdPath.getAbsolutePath() являет собой такой вот путь- /mnt/sdcard/MyFiles , однако папки MyFiles в /mnt/sdcard/ у меня нет и не создается.
На эмуляторе СД карта "есть"
Re: Урок 75. Хранение данных. Работа с файлами.
Добавлено: 23 окт 2013, 21:13
Foenix
/mnt/sdcard/MyFiles/fileSD
нет такого файла, или папки.
Re: Урок 75. Хранение данных. Работа с файлами.
Добавлено: 24 окт 2013, 15:28
mcprograms
Помогите!
Сделал все правильно, файл берется из Assets, отлично читается, английские символы выводятся, а кириллические - нет...
ЗЫ: место них выводятся черные ромбики с знаком вопроса внутри.
Заранее спасибо
Re: Урок 75. Хранение данных. Работа с файлами.
Добавлено: 24 окт 2013, 18:20
trew
mcprograms писал(а):Помогите!
Сделал все правильно, файл берется из Assets, отлично читается, английские символы выводятся, а кириллические - нет...
ЗЫ: место них выводятся черные ромбики с знаком вопроса внутри.
Заранее спасибо
Перед тем как положить файл в папку Assets, необходимо открыть его программой Блокнот.
Файл - Сохранить как -(кодировка) UTF-8
Re: Урок 75. Хранение данных. Работа с файлами.
Добавлено: 24 окт 2013, 18:49
mcprograms
trew писал(а):mcprograms писал(а):Помогите!
Сделал все правильно, файл берется из Assets, отлично читается, английские символы выводятся, а кириллические - нет...
ЗЫ: место них выводятся черные ромбики с знаком вопроса внутри.
Заранее спасибо
Перед тем как положить файл в папку Assets, необходимо открыть его программой Блокнот.
Файл - Сохранить как -(кодировка) UTF-8
Ура помогло)) Забыл сначала на F5 нажать;)
Лови спасибо)